{"_id":"@material/mwc-list","_rev":"701-1e68c0331b7ad3a017af9f11d8044eb1","name":"@material/mwc-list","dist-tags":{"latest":"0.27.0","canary":"0.26.0-canary.0af8ade5.0"},"versions":{"0.13.0":{"name":"@material/mwc-list","version":"0.13.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/list":"=5.0.0-canary.a1a0deb3e.0","@material/mwc-base":"^0.13.0","@material/mwc-checkbox":"^0.13.0","@material/mwc-radio":"^0.13.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"054d0d234704a274e8aaf7d8a8a0399f525914eb","_id":"@material/mwc-list@0.13.0","_nodeVersion":"11.12.0","_npmVersion":"lerna/3.20.2/node@v11.12.0+x64 (darwin)","dist":{"integrity":"sha512-wccYa5svBh68xz93osil9ZWItUt219idbX0a41MMXZmgm3esGXuGG4kH9hn14opKrhK4HgYfpFml3yt0Jlx/hQ==","shasum":"60e940749692630b4c8435693910f1f554e2292f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.13.0.tgz","fileCount":79,"unpackedSize":849532,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOPc0CRA9TVsSAnZWagAAgxcP/0742EpQpmUGLJCCHPZ6\nPzQaiIiMzH8MOv599r8xSVmmAqitp6V9yTN5gRl9YACYVev4xYdL6NqMUGam\n3YA8ObArBUS94pmLae/paa2g716AsOwZn3FhbrGk95bzZLUa4Dg81HjLZyqe\nD9SnH3sMWpG+1x3Zbz/AJ6sO1IzpjABIFQEiy1YKCSvfAjn1ueuZg+8tRrn7\nAaK/CBOpEJDZUQaHqqE4cnBOehHPTBJ41bl85HvyeNPjXvrNCY9QiHDeyRZN\nAyKoyOgebfFVCSuLkCFOyNQCgS8QPtct8y7rzCvmM3rNc+zkZYCkuiJZ4bC7\nDQgdp3qmeWq4nrY6DbU3erid1ApYvJpQnPVj81/P5eaaL4aNoMpS8bCt3t3r\nNBTlKONeCXYuV4BwBp5pdRDiV78KSEY71wJTuX+SEq0Qw5lKA0exgTdfPmVe\ndIasRAYK0TA6iBtukqtJY5v77aplRII6NiqZiCC1CodWK8MpwuA67zSw+Th3\n+i9UTFzoI87W4WwgWRqbibyC8hVp2phTEGctKulBUim3PzO3QSsIuzL1Tq35\njHVOijj8jCoTQfNsVSYST/j6xxkVYrepSpEdu4Vd3FG6UdPSDyuZSQmk1Cqk\nEZN/OvDvwa8r6ma6kmpvWg/1xEJIMlDctRGZOdmyaJAFgnqJyj7mpB6+Sf+r\n2xjA\r\n=gY4C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID4x/i3ti7OfxTbh9TfwOQhba4CU/pCSrFV0EXVWT8+5AiEA/8kdrxoDJIDAuQpebl5gzd4v1PYZwHoXYzqKz/ZJSJE="}]},"maintainers":[{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.13.0_1580791604449_0.04535114513291072"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.f790f713.0":{"name":"@material/mwc-list","version":"0.14.0-canary.f790f713.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/list":"=6.0.0-canary.781434a92.0","@material/mwc-base":"0.14.0-canary.f790f713.0","@material/mwc-checkbox":"0.14.0-canary.f790f713.0","@material/mwc-radio":"0.14.0-canary.f790f713.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"4ccf0f734c9b727a925e62b9999d4380351c7936","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for Edge and IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4ccf0f734c9b727a925e62b9999d4380351c7936/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.f790f713.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-malLCAlp8EeM61It5PwhiEm5j4LO7Ww709y2dCY2YJsFX8qpY77/LpGVuFMlnKdagapADfhRAhDX0IquNmqpkA==","shasum":"1e4ab97e66ea78f6beafc93f13c6418908b3d1c5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.f790f713.0.tgz","fileCount":79,"unpackedSize":857140,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWHrdCRA9TVsSAnZWagAAyAoP/3l/bZcM9hC8NWMhP4y4\ns9hrRHMcQ4s69eo95ei79qDPEZpbR90hczzy7QstZmfuawPg5sm0A8JwrW/g\nGZJD5AGd9kY8QUvHdEWn6d5QKTRT/o5ASm3kEV8DHwvrKaR0iEAjsWWlIC/E\nkLtrcjjtmsZol3CFtzJFZhYNKnze9UId7sz9CCWkyan4iGlKsj47sTk3H7Is\nVx7B+IBY7qL6YFBvAEQ3+GAeaxMlJe+P6Qn/5kRDsHzMvdBvQV5oNiWmh+Rb\n+ajzRP4RFqfFEva3Y7DkAMvTqcjTec1uMZYFny9L6dwboloQN2phi5lr5hy/\nTzoEIliQrKtf9cjw3mvzghrEeGWAYmlGPWc0qDG9wIOBaxKit8moVcPUygYu\nQTe/wGbzNd8auLqvTDJ3aJLwrppob0zwUSVlJqV8y8sr8KWyd5vfh6AjTcFd\nvi0yCjhF9IC2pW+L1Nh485eRvAeLjEt8YRbse+gDuZPRlDttsMvEZHwJX0Gv\nVlr8fZsOQgso9SgE703fOKke0cAeUmic4IEEZgQcjzR8uA7ZNhMldV68p9rW\n9Fb4DQ71uXgMwgK+NcDWMrY7MyjN0S1pYy3l57Jr4XF5EhLN9tVTnL+nYSQJ\nZWcM8Q92tiPVM8HWDeRnLhNFl87fefBzI6EtquIlGt83E71ZpFEauUNMeLIy\n9RfL\r\n=6/hj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDGrDmEzo6tTavXX0dRAuWY5usdJV8Wmr6Iekkx+6NqHgIhALn2ZuYVmUwT2Eos0Yqn428AhRY9X78/cUYe9AvtUjzu"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"asyncliz","email":"asyncliz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.f790f713.0_1582856924637_0.24876214254529883"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.c759cfbc.0":{"name":"@material/mwc-list","version":"0.14.0-canary.c759cfbc.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/list":"=6.0.0-canary.69edc6e28.0","@material/mwc-base":"0.14.0-canary.c759cfbc.0","@material/mwc-checkbox":"0.14.0-canary.c759cfbc.0","@material/mwc-radio":"0.14.0-canary.c759cfbc.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"e0a8ac49c085c004f390a2995879e67aea1010e7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for Edge and IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e0a8ac49c085c004f390a2995879e67aea1010e7/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.c759cfbc.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-+UvRM66EMbEY4vZqnw+KNDEvwFcxYgp8HcUJfMZoxOY6wtvMDsEXFXeIdUVHQOeNk7eZJ8EAZe8aLJZm/aREJw==","shasum":"85c238eff12c15c4efb5072fc492884fb150a71d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.c759cfbc.0.tgz","fileCount":79,"unpackedSize":856541,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWaq/CRA9TVsSAnZWagAANGcQAIeu2eHrt4Y1mU2pggH7\n8HnODU80P6d9HO2AOmy3OMw5C7vNMbd2hV2HBC8XbwRc2xmFCsZXoctJ56qy\nH2usw9K8/Ue8v6xMV9qcdk5cPOQJG+Of068+p4L9Jiy5YSsskj9B7+OlCRCr\nbUIY2JpbfteiFvGMW3VJ571mBInzM389St8LNGpVC+2hPJByHXNtuND1yPIF\nIj2wlA3HAy4X4CYEjHnMZ5qI8+HzeKsjJsOyz9G5lO2ZOX/04l4JEeg/sHGr\nUT0p88/j3NG/BYHpUR48LZ101p/ZikkMl1wwMZTmHIKOC+8wMyv2RGfzmbZ8\nnqYNQk9u8hUSyC7QPthDi5ZemkDckiTIbUgKtwtpKh8+FcxyomQ6gKqImoSA\nPQ0u1XZEQLWVMr9Yo2F4kjBj019j/iuQvD9xgRwEsASL9cH4FIaRf9+/3VBD\npXz4s0fBxUBVcRBMYMah34n9PlUJDpZMybR7YckZ7nGw245J3e0EaGN2HFLK\nuaNXRGTa5FzXC0ghYcNvBRaeFsfLT4BvxAONVE3aHgtE5RJrkK8WZraUEhhm\nKm+/xFd2ddWKGKtNjljmVxXURlUU1GYoQotccdZN61qknA8WfJ1yTtOMflcH\nwqRfCnEieCTbwPUayojwTF9UbPPo386CtnIyb8bezcSBmUHkX7sMHj/GOW7e\nlaEQ\r\n=iAiE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBsDniY144qrp33+ANMOTFTwsIL2QX0G1yeFcpAYvKxRAiA0JvhrinocIFbQgngjMI9njZxYN1rLmHfeMdLczPhgGQ=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"asyncliz","email":"asyncliz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.c759cfbc.0_1582934719218_0.10206349944947712"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.97ef53d8.0":{"name":"@material/mwc-list","version":"0.14.0-canary.97ef53d8.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/list":"=6.0.0-canary.69edc6e28.0","@material/mwc-base":"0.14.0-canary.97ef53d8.0","@material/mwc-checkbox":"0.14.0-canary.97ef53d8.0","@material/mwc-radio":"0.14.0-canary.97ef53d8.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"c6865476c6b2c4ccebc9f20145aa8fdf93e1252f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for Edge and IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c6865476c6b2c4ccebc9f20145aa8fdf93e1252f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.97ef53d8.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-oNl36yl5j7LUlAcLFI82x/q83PNNrkHPL3KuXcrBRi53WjOEvZWqbCtMnJOOsg4JVRJlKQoLnidZnM7u1b5Efg==","shasum":"a58779e412a254de4b475e0eb1c02ab272abe575","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.97ef53d8.0.tgz","fileCount":79,"unpackedSize":857363,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWa3iCRA9TVsSAnZWagAA8a4P/jLjXLlB9L46kGT8BKs7\ny72MnD78AhtVOneKr2X3puu9eFo1a1ZMle1nVhdab0S/vDhtQYjItfTI0gj2\nxMgEP8JayfgvlX/fJg3bzy9R2rZEM7z2EMaoTZ52yBqIQyL12P+COqiREP2y\n07NJObH7g9k9+lV7H3nwlAxiFxEq/ywxL7/n1/4N3O1ihobvAN4mVzKA0psJ\n0DdDRlLfd+vc8tadcfKLP1A+RjoghGQ24Pa3JWlHs6tVHR5xZwH8xtXVjWoh\nrPdXFqe2Yc0c/QXTkFq8HPmP3jRc+1PUZix0XN+m8W3Ejdss/GVa3T5bsjH2\n9/7M9fswWZvhP8O7LOUf7ZPQHHK2ZPL2x2X349uOQONHiwsidT3iS+EHUTb0\nPo7eN9kgPbFG6ALvyPU/xzgOYNMaUeLKVvmI3Swk7eC+8nrL+Z41wjgN+3u+\nEaJ90DzKKqzb1C+knU3Kha5kB0eYkFe8s/FUjGKGEKsGPrUir6CKCoIwdmtg\ncWf7cfQtDhtBqmTB9K7UVzOwgRkCT70t83hsn4+hy0LO2pgdjlI7zvYmZaum\nlOETbt2CHUqTY4f5oU3pFe527ybXO3hAYRtZfxOVh990HcYmGKVVYfz/iB29\nVOwOYRTzx3U5ku1dCASUJAi+ncLx7rImpScq0dILRqpgu043yKpkO7EzEvCo\nifMq\r\n=I091\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDIGel4NEX8HUJ2qO6qZRgmTsHlEF/e8IfiKMpW8UjGugIgaxhDKnNT3tbSY8pGkMFryPeOVkA8bM1WSIBk5oc1uh8="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"asyncliz","email":"asyncliz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.97ef53d8.0_1582935521905_0.28831690716235325"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.24f5fa6e.0":{"name":"@material/mwc-list","version":"0.14.0-canary.24f5fa6e.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/list":"=6.0.0-canary.69edc6e28.0","@material/mwc-base":"0.14.0-canary.24f5fa6e.0","@material/mwc-checkbox":"0.14.0-canary.24f5fa6e.0","@material/mwc-radio":"0.14.0-canary.24f5fa6e.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"e884595521a6f82f63b8dec96fc4450410e37a09","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for Edge and IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e884595521a6f82f63b8dec96fc4450410e37a09/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.24f5fa6e.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-jvbvxKaIQJ6Zcm2BelqqRrxFcF3baxgN3VTFsd5lLpa04fTT25ePYjMIOeTnRiRcIgzLG3Ne0VO0qL3iBBkKuw==","shasum":"43e8a415e90536152d4dcc958ac501ee1e836036","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.24f5fa6e.0.tgz","fileCount":79,"unpackedSize":857363,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWbm0CRA9TVsSAnZWagAAA8QP/15OB9QXrE3fTsZSanik\na28Cz0g5r9XwMLtcKNxH+oN2de5kIBjPXwQdhwNkAeFwXGCGvH1KnG4rfAjC\nkeQ33PdQ1HnyzjB/yO7PVnkPYJLHbRRuvDDcP3awZBffawtFw1BjLypRzwU8\nkRnWi+8ssIXms/7e46/p/AeL2WGrJSB6lE9CdhvEvEzUKO5tItVgpAs9v7Ic\nJDe9Bi2CfSSPK9aCD5T49APv1v+DznY7yZ5c1FNB0fzLrhcNOd3iIPucyTFG\n+3b2S5wO2/UD54lp067vHelM3V2YQOl/Tlqpeo2+YcfYRGNBqpYRozwLIvAu\nj1wpHX+DHXi5AzpthLVIPmLmn0aoi7/+3ckLSYpn02n35xI+E+kgUFyZjHTA\nXNCeyP3Yx7fubuvFnWQCDlmTG384H4uduIi8Ab9s8Dl+FFcjAD9ei/GBkhsr\nCFrZLVxsp8Fi9GVdcEIrK5xwhzYubZUDVuPbqc/xpiBrW5OeNKSL6gMX2iKw\nYqjwWSRQFMa/V7Uy0PXlqi5Ho80l2aCPwatFvzYUYPkc8pHA+zNapVBhmLGR\nbWK2EEyRe3yISWY9ON4LxTWAjE9mwPyofNlXSAFNyhtvDqNjS/GWKRuR/8Rj\nLV7J5tnXknBgUol0XeHi1+xlr+pAHWPyLi9MyrxTSJBgrc0MhQTB/ZT+Vo/l\nwQu6\r\n=RCMf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3sqxn/mbRJblc/xQVbcO05cOUANph5pksDkiAmHlX5wIgTZqzo0BCnoGAOXzpDI3FPGeIh9tHYr3b3OmcQJs/pps="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.24f5fa6e.0_1582938548089_0.5598032815222469"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.960e214f.0":{"name":"@material/mwc-list","version":"0.14.0-canary.960e214f.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/list":"=6.0.0-canary.69edc6e28.0","@material/mwc-base":"0.14.0-canary.960e214f.0","@material/mwc-checkbox":"0.14.0-canary.960e214f.0","@material/mwc-radio":"0.14.0-canary.960e214f.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"9c56e2bea6eda03e423f3f7ba00cf95f684660f2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for Edge and IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c56e2bea6eda03e423f3f7ba00cf95f684660f2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.960e214f.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-V6APaV+X6N41Xtk0t5a2ydfW1+uSK/2sElPbmVcuVsxO9czQP8XTQ+1BPZpkneO8jS2TEtL8tKrPikOrGoW6/g==","shasum":"d4c6f48dfbfb51dd92a307a9c6a52ed3a2501dc0","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.960e214f.0.tgz","fileCount":79,"unpackedSize":857504,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeWdXnCRA9TVsSAnZWagAATnEP/AiW8ebQ+DuvnfwlPrAa\nmt89rkI3cUvwpTEziUsFTz+hU8mNMZJUz1/sz/WvhqPZbnvoJUTVCfVxGVQP\n4H0M3TERr3OGRO5r0R9Jo3LilQirLwifz79WXdymTfPS/92yT4aexiXN8MQL\nrVUHEa0jFqFtRrxapdTZiHZnYeYhUhoY3R+LpORw0ov43DtuDGpb+55Fg8ja\nNXAsGyinoqs8Ru1jhMqyy9RE0ARZdOvoH5PR+ymNzzk9/wci6w47T79tY2xq\nnGVZ/p5xRLTOyYhL781r+OMuubHF1GgcDzip6nFNTHTULvFvhis9r+IB1/ta\nBwwtKB/hINFiwAOjbtobxYpdOWEg2nEJ6/jBqN9vLzWJS8bpGGAcpU1uZjmY\npeMllwWEcJNlGnJim6t4bm4lQljtIVJm38mt1AdwU8e44j1XcsJ5MnJgS1Zf\n4VFyUbmpJuwJh3eaYtIVxCEzJ2N07R8J8uDehaCP258w5ytX1J7lXfjewIRE\nZwYxrVcoYfoIP4dJjwJ5UFRwcU6BhEgVmklPwO11xEcjWbgNkbNh0azc9z9x\nj9oU+8obvR2I+egX4oddHr41ytlxKcJOlUgYBAmgBrXEiOw4nEnRW3mHIUC+\nScV6fO2gh0tU2R0qyUwZpKrAIr6TO7hB8D1sBqyUc8E3bNeBK4AIyAgg29mb\nbbe+\r\n=ofFd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCk1k9WUsCDAWgavvNFo22+TMdWVe+1OSCv0F9ZSU/5gIhAJAo69XxQvaBobQF68KgDu7SpzPqWKjQL7E2i8Y0p1Js"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.960e214f.0_1582945767470_0.6957494657438341"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.a2f046f5.0":{"name":"@material/mwc-list","version":"0.14.0-canary.a2f046f5.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/list":"=6.0.0-canary.69edc6e28.0","@material/mwc-base":"0.14.0-canary.a2f046f5.0","@material/mwc-checkbox":"0.14.0-canary.a2f046f5.0","@material/mwc-radio":"0.14.0-canary.a2f046f5.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"b2845ca1286088f29e79c96b6d5c5367873cce11","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b2845ca1286088f29e79c96b6d5c5367873cce11/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.a2f046f5.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-jlRjooS5Q+ZsiOss31gLA/pqCttpbmNJaveG6XyIn3WFTyqCDSYlAmlY6WVbOeAxT5Q8G8+89F6whQBxhmILcQ==","shasum":"b6a92e6ad0bae02b9505cba8364ea39b629ec44c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.a2f046f5.0.tgz","fileCount":79,"unpackedSize":857495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXatgCRA9TVsSAnZWagAAfbwQAIzvv4kL32Siuu2bXeeN\n/PYQWZgwEyer/v/+J8b50AA3BlpYz6+JIjCBTdDac636xfz07p2A9jwcaqSE\nS1mp9TkixolJb4MTIZuyMTs8GDcN4lEaJxuoUXPQw30f3TjUXRZMdoqgotXW\nac91DmvzjqODnN0kdjcITT6JCPDoNki/tIv62vuSlhQ4WkObVcQN9QrKYnr1\nsUDh0Ns0a2yGS8smUi3Bpco4o4LdUGQ/CWt3TLuNgSw4SHmIcjzSD8IG+QIA\n2c/YgmPaTW8fkV84ESgjp4oU44AuCIG0VhjjBf6r1drgAAcbpzckKQmoGGFD\nGL6YgOGIx65yQ5l4UrNoq+bjktkEGXcOuWLve26CWA0sA079HViMU101vjSn\nbN9PDnJPuDz4nZqZOjgk77TrDG1SiMzxYE3rPzv4p6xnL55GG8cLyj03BPEZ\n2RwcnAyXstfQsKtszNIzPdhUwYz2oNqyookeWzH0+iBW4K7fFzDyhS67EEOs\nLD89JinY7PADUMZfrYkwRB/e8jxGm3R/9tHDCAHyxbVWWkaAVQm69TqINBiY\nK0/w+6/Ppxsm9uZQTpeUctyXzQgTba6pRKat/r9KxBfkmG8yzB5QEweTinUn\nbMZ8CtgXdmG9jfHnsClQI+40rXT7tyLpts+aEJyykPWSgjYs1MkaG8Ab4Rbh\n8YJT\r\n=sDMd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEGCtcof+Gay84UttebIkbQerIJ6MbjgvdMaah4ZOsjvAiEAnWduTsVELJ2xPN1n4mN4EdT1g85B9iixXkyivS7gXLk="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.a2f046f5.0_1583197023679_0.31467467181851005"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.024f371a.0":{"name":"@material/mwc-list","version":"0.14.0-canary.024f371a.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/list":"=6.0.0-canary.69edc6e28.0","@material/mwc-base":"0.14.0-canary.024f371a.0","@material/mwc-checkbox":"0.14.0-canary.024f371a.0","@material/mwc-radio":"0.14.0-canary.024f371a.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"efde2be2f22a9a7e20f2b0d57c4cddee405ada0b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/efde2be2f22a9a7e20f2b0d57c4cddee405ada0b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.024f371a.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-CwD6GfCsEtKDTCI/4hVFd3IpGFfUnByRWwiCHv6bKGhTFkL0x0wx1VNSLUfIeZHb8QwNLW3JNSexHA8vIW9O5A==","shasum":"d6a8447061a2f0b6c93b397a1fd3c4f7f432768b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.024f371a.0.tgz","fileCount":79,"unpackedSize":857495,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXbLvCRA9TVsSAnZWagAAYToP/2kbfpYAFf1VRUfoL/uE\njX53w8s0I4KvV+xieIQxWcsocdoZbqhfgj13Zg/GhQ+9AW7n4qTj/s1DAgzh\noEW7eux90BZsbuN+v2/6Myebo1UJ9AxBHDhEdtE8CjAzvDrbqDXgz3GCZl6/\nPQgIiSwmek1/mIfNk5DetM/1O/H16gl6w6NNifdnukwNVV9BkurSXOBND8fb\nI0o8XCIWr4zuESKbhWxVQX5kTBYCqP5f9rrLkGcQkX5KhcgROitfPzdekSxN\nmWqnEtJvCZD5k+fqnt81vhhGspQvAeE/xW8lKmeLlurSnNpVsjPL+SfD/UsT\n1SJFnSihLzhlN8QklmdVRH82AUgKS1q60DnLWkujuCqssK1PL6NkikzXcP1R\nOlsPBOsmgERwD4diUXOQQcV3fBTC8DmWXgrsqJdu1iiaGUxt2M6qLjDhrKI0\n58tzt0bCqrBqnqeH5hSj+tvDds6+SxeKp6DwYCGlfBTyXCFanZ954Wtfs6Oa\nxHZRz2GwYIPsbA89+Pw444kQGFLvymhbAhnSmcwyaS2begOUa5u+WHy0hcoM\ninyvNw4jkCUS/WxWOEDf8iutiddsxMx32kLS9T+yEOebVKAXR8klrxP95DeN\nGle3IsaJZwxrJpKdnmM/b7a1J/wsjwcJDohS9nifX0pv9zliyIFwx4XNz/zJ\n6O6u\r\n=NHBs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCe5yPYEx5QtTMLXVsgm0hxdoLkC1jBrJB8g6mc/T563QIgB5WmGjb+HmiqJa07xog+57kRxe59laMK6jqtVsQbK8U="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.024f371a.0_1583198959195_0.05026338447141687"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.2f164110.0":{"name":"@material/mwc-list","version":"0.14.0-canary.2f164110.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/list":"=6.0.0-canary.9372e4939.0","@material/mwc-base":"0.14.0-canary.2f164110.0","@material/mwc-checkbox":"0.14.0-canary.2f164110.0","@material/mwc-radio":"0.14.0-canary.2f164110.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"288331a2ec51b59facb4791d01e4d2ba8f4b7cc0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/288331a2ec51b59facb4791d01e4d2ba8f4b7cc0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.2f164110.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-Ox3E48ZJ7pnpkmQhROR9TIH2APACgNVZWvlPjAl/ULhnWQ7incyCEovvrtsbk5vV5n/YpxEzkcA5Evz7jJnL7g==","shasum":"bf58fc43caca57dfeb8db2c8cef580c519f9a395","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.2f164110.0.tgz","fileCount":79,"unpackedSize":857624,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXs1SCRA9TVsSAnZWagAAK7cP/iMCm+hxjffxFaUvNTJ8\nEA+crrFNpW7b20cciZheQdiyfzEaopkQTgug/ozjQFrpIoBWN3XXHhdUZscQ\nELnmmluXO716PXFwSHseFYfpJUMgFyv1sC9zyoZxI//Mpg5Q9BtB15CCToGJ\nfleDXgPgkoL/WFSOm4cGla/6enuzg1ZQP5So68GhTmUedGuVebasySVxwuVc\n/vB3g3f84rKsg0fb/v/47Ucn0vEb9N6gN07NSPpmsZ78BuBt/FBMVpeWz8r9\ngERKa9CfHY9pis3xdt+99lqo7J2huJsKEvn0DDO5IC/W0o3Eb9xWJBtq4IBu\nUJpJW7icTuMUy8wZ3JiUu61zhZQHxZE1xon7g2zy4o3VpIVZ19qjiywOuTze\nJp+r4XOqFWmuL5140hqetwizo0NN95N9t8ybckkB30kQGEG035fIKZBqV0Tc\n/MxE3Ek6Rgcj0LfsG7ikhA99WS5YxGUWWpeDko+Hl7Zh+I8vga3MBLPme8Jf\ntq0Zo/FuiDH6Bv/d3rt+i/VM2L/ZG33dJ8GnDHciEEw3OrquXns9Szx8Jh/t\n6KsDEcR8JYy/dcvWUA+w7YVItjX4H/+SEFOTyh7A2jooDMN3fr/I+TA5i+Uj\nZL3Hp9sknclRNSLTPKqH1gruW7SXL6E0n6LL2jZM6M9K9Kj46Yubi5mRgarH\ndSUA\r\n=4NKU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCS3RtmNZUFWYWGFItjuMPkcQOIYVsirrosW020iF51egIhAI3PJ1JfOjnizWbs9Sq6i2Pvcp8eJpnN0BsCz3vKdaak"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.2f164110.0_1583271249839_0.6866442594417617"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.edd465cd.0":{"name":"@material/mwc-list","version":"0.14.0-canary.edd465cd.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.9cf5e9842.0","@material/list":"=6.0.0-canary.9cf5e9842.0","@material/mwc-base":"0.14.0-canary.edd465cd.0","@material/mwc-checkbox":"0.14.0-canary.edd465cd.0","@material/mwc-radio":"0.14.0-canary.edd465cd.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"3954ee24dd2fd1d9171cd7a967586e7d2b34ae38","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3954ee24dd2fd1d9171cd7a967586e7d2b34ae38/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.edd465cd.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-ZQYKdkeLurjQaV1N9JYgjUzZK/8Z76kN5k/+EdNugUwN9e5yV80qE8aJ2Hym09Tb1q2CSuJA8S3tMu9aZLv2jw==","shasum":"ed6d4aacd5fb457e5f4c5ad424440b2aac4286e5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.edd465cd.0.tgz","fileCount":79,"unpackedSize":857675,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXvIbCRA9TVsSAnZWagAA3dAP/2PCXsDNjFa8w5+l5NV4\nKq2kmZ9c8DYXv7AMPiHulwYYRpQZWFRyACNqngtz/VfyxgNuYRtGq1XVdVYO\nvP2ZoADnm3LQMUtVUNzVTC3z7OX8JtB3l0lgjq0O8oT+KQBIeOAklAcXeyEO\nSzLrzMCPFeFNHb3o4MQCoGcGcXGvFxFQmrsxkbEjKPt1pYzYlJACKn43H1+D\nqzI6TPV/qkzBozD739sjx9GJ08TrJThfIOsGZdYWkPwMGqBG+zmCGTmPYlPK\nWeWRFv0B2M1Gvgv4a209cjF0ou14yWkk2Kh0j1phLbFPqwGh2VBU4EJjX73+\nDR+WePslCOIrM1f8zzr90kA7aCochtC91IC4wQ3HpiYZaFwb0wjSeHNsl/dc\nuNyQ1uux1yS4V8EA/mGqcoBQEQwdLdyn29C+X626nPvCuI+WAz96DskeS4Kq\n3vsjI5F6l2X1ywet7Cm1daNcdKDdd6DRWfTIAPeR7Nc0lhXTBAnxzrnUQI2/\nkk/bS+1uf978LHWQ8ZbMFmoQeis+Drz4cW9hIPhQJBbaTF8Luz27Ev9p2kfi\ngQhe/RFBMl6QpvWYtJoOTvUsnlctc7bn0S/Bo8a67D0fDvGxMjQpSbc+ZYAq\nqDitGTTImT9ucfxfgbcvQ935N3UTRUP06GHdF+S8SRyfo9JiuSOBs1hyDxfn\nO68i\r\n=2pzF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC7qeUwRYn3ZouY7XLIssQXyswridsFQOq2my9xammoygIgPMwBEt8uGKep+wiqRsyC3CNXcVktgwABr+oGJKyLX0I="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.edd465cd.0_1583280666992_0.5839463831593548"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.2b02d017.0":{"name":"@material/mwc-list","version":"0.14.0-canary.2b02d017.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.9cf5e9842.0","@material/list":"=6.0.0-canary.9cf5e9842.0","@material/mwc-base":"0.14.0-canary.2b02d017.0","@material/mwc-checkbox":"0.14.0-canary.2b02d017.0","@material/mwc-radio":"0.14.0-canary.2b02d017.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"2f2999d0bc0326feb2bf856866fd9238c59ca246","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2f2999d0bc0326feb2bf856866fd9238c59ca246/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.2b02d017.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-UZ0/BrQ+8IgvG7cQfYsqZUC78RkHkiSFlYprSTOVAkDgi8QVDjRyE6M+oI1sieDdJOGS0/393AVucChDYyrNgQ==","shasum":"803e3a63123bf5408169f7a090dbfdf68a9d71c8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.2b02d017.0.tgz","fileCount":79,"unpackedSize":857675,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYA1XCRA9TVsSAnZWagAAeDAP/jEyW51Ldd9UVmF693WB\nszV1juDzs92WlVmINWEXR5Y37tuWAksoqur47OfBIIGU2jRvb6RtfomTZrLc\nrZShJyQ4mxyH7YG+5HuPsSb1LtoT50umJkJASdFKmg9dLK+mTbuaKROW9uxz\nDhgXUXxxx/mnWegb3LOJgdG9AxF86cMPQ1+t8kBTUGLgZg3rV0JXkANNTYvF\nln10KPMAKpN99rF/7QL5oWzCfrL3TjXffpos8l8+QR6F6heH9O2G1IOZ1Ttc\nEULJID3+rxB9td0ykS0iTKUKYPnYOG095GtqGNf2LOXe0N2dJaM8doahK6Kg\nDmBTZHyiPiy80YUptISQJ52bZkC/pB/xXKA1AhxV8EQVNg+geX1MCGj1gF2y\n0of//v7VNwwftoTYsElMlRp6TSqMu/4RDN6aMM8Ju+AkM6KaDFhxKpbbRma4\nvSipoQd5C0n300fPD8dg8WjMR3657F3H/dNkbDPxkJlvfU/uKSLPw0ku4xr0\nzTyRbNjSHgRa3EfQF5cmHuvJzTUwCsYAo5B2DPK2VwCLgwI2Cg57rjXvGlg+\nV/x/NcpBCSadX1/f9PkmWVXHHhqCfatpOMhiY/KC/gR9kd2kneuF9l/4gpW5\nkH6YAXnUD5qTAKTD0y7a8ni+4sKP/P5gmlSpbwdMrnyuebk6l4Nd6kk+K7xR\nL5je\r\n=yru4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG9MxpdieoKr8e7zv132rAl0A2pYznjNi0uOCSS30IxVAiEA/cYbdrMXVKUcUR0+GFTDv2maKjp+F9gHRdf7KGSb20U="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.2b02d017.0_1583353175432_0.5708294266867513"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.cbdfe453.0":{"name":"@material/mwc-list","version":"0.14.0-canary.cbdfe453.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.3657f8863.0","@material/list":"=6.0.0-canary.3657f8863.0","@material/mwc-base":"0.14.0-canary.cbdfe453.0","@material/mwc-checkbox":"0.14.0-canary.cbdfe453.0","@material/mwc-radio":"0.14.0-canary.cbdfe453.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"473c76376428d49a6811e677bf7e1450ef90b5cb","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/473c76376428d49a6811e677bf7e1450ef90b5cb/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.cbdfe453.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-IwdNk3FJliYVVyG7QtXySUezgE3zkTAoseVN3q46yjHd3IDe+YFAp2wOLQN1xPgs9nW0/r1MNRsX92RvylvDHA==","shasum":"7604fa01a5dcfcdbd8b84dca12cc10aef235f120","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.cbdfe453.0.tgz","fileCount":79,"unpackedSize":857675,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYCFaCRA9TVsSAnZWagAAGz0QAIhQXVIrO0mtZeAbkqxE\nzD5NyZjN6kfr7skeifenGjc14iiF9/Ti9rVdWSevwRhdAokj3KwZaD8G2DFt\nEn8RQgaGhTY81+j5OxMjioMdrcMHgsr44yDPedQuyT3N0k2srdgfbrGP3fgS\na1Rbcrt4UgkNyKMLGtRXIpxIdbmQFM+Ldx9ShVVZZAN6OF4jyK68OL8K6Ntl\nKEw1awY/XUrTzOv9yJM25Vf8Y+DtMx9lVSzqzdlpTDailzrDl8UjyQ+g7dK9\nx60cwAa6VUTS8KY9k8J5JU6AHi24hwCoKD4Pr+QjHKw7LKh2Z7Lv0jN4VHoY\noHRtzjyslKO+B7f/1u5hIdni4y75vq8SECRtm1YD4+q1412jaj/sHIhX8QkF\nQslwN0Urs1NybuIy0JfDZEH005AlHvUYJvfLKdb5SceayHF6FR8qrmqMI1yG\nlZruLz8pXS4sudoYFLBWo36sQ7Dcp0eQolPPPyNyGTcE9V1aXVosP97FU9Y2\nEZYnWIGezn+n9AP97++hEp0xZTcDCL6gQKrtpQDMHCIIT/tnyqsXnIIZSh0n\nRAGBt3kZjbqiTNfxtsw2QKmiSVmnx3a0dFCqqR/hkIfm80ANC6u6X1yP8OeY\n1kf0jLVPvcU6glMRn8dzPDSRLO/SK+CSpiCQ2lywM5vh0CNuF1at0xSvxFap\nBwnT\r\n=fJF0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDeVRGHrDNQ2BcwcP8dX5DthU29DPS7BGheOIqMJcXEfAiA8Sk36K88yV94e+WTpiXK0kxZezWXu32ittaVA26/ApA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.cbdfe453.0_1583358298018_0.38330097109914063"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.02aa8a98.0":{"name":"@material/mwc-list","version":"0.14.0-canary.02aa8a98.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.17b9699c4.0","@material/list":"=6.0.0-canary.17b9699c4.0","@material/mwc-base":"0.14.0-canary.02aa8a98.0","@material/mwc-checkbox":"0.14.0-canary.02aa8a98.0","@material/mwc-radio":"0.14.0-canary.02aa8a98.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"97bedf50cad33662f192490eaffe0e04894aa3c1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/97bedf50cad33662f192490eaffe0e04894aa3c1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.02aa8a98.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-vaa3CbVTfLHHpKLk54EHgrVU9cubdk4XsJ2DpTA0Zj+AIB9xyurpYKbigXOBbKqNtk9zOSwRww68bCQX/WJTqg==","shasum":"de0b840f8a5e8638bcd56aaac0c6eea52400cdad","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.02aa8a98.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeYtR7CRA9TVsSAnZWagAAxlMQAJ+X3bAtSV0nu5OYJLNV\nIAqyW/dB02VNpt5xLQA3wX8P7hc8GwzX0OrC9gHAEVItV3hUFloyWqIoV1bO\nCamsfa60EzfieJ9IbfSefDdPsgmXz4xnHJgs0GuBn+kfcSab5icZ4Ci8z8pT\npFsgg4xfpKni8rBIIgoxwa8nfZMQ7DjvCvK6aOuObyg4I9lVqNKxp/Hoawiy\nGtgpl12KlEklpYnK4qwDMeI1Bs1bkGfERiHwzPpVcjODKSnxHlg1tU8yt5Ej\nBFh49l6o2/J7oxVO3L3c1YsdpXnU7hc1zzegs+qTAfDUywwixreIB1rurY7Q\ngN29IUYcVSLqEr/R+LupV/JhjO6GdFxoLV77M16oyk1QLmoETqlsWxqCUWkO\n65gwuhKRIFjwzxrQbLk338Fs424aBaU1nhFame76nf4el+pxb1YUcch/uZYr\nhgCeCC+zQt8CL6wSnr4AYmpTyfOvta61vuGOlFpcKXYK6w8Vc6vXb6q2JvtV\n/KtYdO/ieBzTfW9aKPKC4X3zqmY/ChwZSqw2uV5s8Na9GWPtCXlDU+6/Xn0E\nqRtuabD2BA8AVFGan8l0l8WMsV04Qf54W4DZN3zUUW0f1wvaTfEyih050bl9\ng1mqauZQryNBCdYg3qovfVQCKkw5JvXSXfGhkaTYlbtNRmDnzb3vB6VCDo+8\nff4v\r\n=0/tq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoisXAu02zZuiXRdfgBtLspawSC4fBEuOQwwPaTkTgdwIgPyY8hwv3DoFHaMiaHLVnQR0hfkWJyl25NeUbAEJ0V7U="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.02aa8a98.0_1583535227284_0.055509495871149506"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.7cd5aad6.0":{"name":"@material/mwc-list","version":"0.14.0-canary.7cd5aad6.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.17b9699c4.0","@material/list":"=6.0.0-canary.17b9699c4.0","@material/mwc-base":"0.14.0-canary.7cd5aad6.0","@material/mwc-checkbox":"0.14.0-canary.7cd5aad6.0","@material/mwc-radio":"0.14.0-canary.7cd5aad6.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"02d47be94c90a6674486253c11ed001b63502d73","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/02d47be94c90a6674486253c11ed001b63502d73/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.7cd5aad6.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-Gt65sqz0/GxW6p0Uup8OzFRAwvaEUsAL70dJp37dOdkth67IpzpKVFcOHZgeqlMekMjgnO9Wby2mjt1BYOFqIg==","shasum":"0fe75dd059afb4d9922a05efeae9ab8ed205a9fd","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.7cd5aad6.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZs9GCRA9TVsSAnZWagAAKjcQAIH4x8bDIVwjIi+eo1DS\nxRICI7BC7kPtPos7GvHvEQx8A/UzQlLYKzq4G5FeHKvE3mDpE3hA3mWQusCc\nM9VX9pchf46AwYODEjHoRbYnIa4SIRJcL6B0JP8xleKp6gjUazhEAqo+6unI\nCW+/sZ0ZCO0lwm7y9uauiHS27YZsmt0G1IzOFhBsE9pafw7PYmT1ur0qBfGS\n+wDGpNKKhOFxk+AukD2TDReCCqAmzojDzRab4neegUE/42G4+ofilQMH3xB3\ntYODZPA+2+kBBybDrf/fVsk8AblGCxKXRiLILtbXhDILaW4ikFebyKaSqOIW\nR1DvmBnNJZFt340Pq1bbQ7i88SEV0AmhEGLeKO2e4KBUHJclxPiyo9zlF3L/\nWbGTjUI4PCKkXJ4CMa8EkvABljyqu2X4DYRMY5CGAaSKjc4y0mFQrGk5zztO\n0mRWP7PqOffMT7JNYSFfYLBRaJqM6TewwCQFZwnt3AmA3qCi28FfyGIjye4I\nc4bUZO6eRxx0pd5dPfSQtAQuicGIjyavjOdf08Cw6fGmi+A2JqO9941AYFLM\nmRvARCw19jRpvBhKzQAZJ1ybKHqMhyoYIMp+MVlIrZTafDGQvkX9Tm7LxrjI\nbbw6JSVxQJD/FbvcZW75/OScd/MOwg3suDuje9TeUNBBYDwp2O5614w+Ss3z\nxwwA\r\n=z5vu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDqCxMl1a/Cml+G8TXlm3MoupTBTQIpuDl+cM1MuHPOKgIgMbCLUpMXbdwjXgSmMfDkS1msYy1DW0v85GtjAaXodd4="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.7cd5aad6.0_1583796036866_0.6961311820166278"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.3a79dfa6.0":{"name":"@material/mwc-list","version":"0.14.0-canary.3a79dfa6.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.bd33cb56b.0","@material/list":"=6.0.0-canary.bd33cb56b.0","@material/mwc-base":"0.14.0-canary.3a79dfa6.0","@material/mwc-checkbox":"0.14.0-canary.3a79dfa6.0","@material/mwc-radio":"0.14.0-canary.3a79dfa6.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"d8c4d68989d9c1489104002dc0f43cfb89ad0488","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d8c4d68989d9c1489104002dc0f43cfb89ad0488/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.3a79dfa6.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-yX9AhvLlfd9O/jV4L89w3N14vX2dXfsfE+2+NDna/Bwg2asp/6e4LH/zRzLz3mH6lmsFB+ezYSh7NZgFfUP1ww==","shasum":"5f8afbc948dc66545dc9d0d7a075566a8d3b993a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.3a79dfa6.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZwHnCRA9TVsSAnZWagAAMnIP/A1Hyxii+Ok9f6R+hzbP\njd74OfoU0BMV9L4HRPbLJ/5diiIS/ZT6LJrdJgup1tfBiIhbXiaK7c8Xbwci\nvvqBO8fqV0K2uGMdYZQqfxD1YMuc2EMYJp9cFOTcF1T5HZ5eD4UuFyABy0RC\nyGJUCH674F/iWkf1aKRgsAPtn+rxjLaFa/hgTwRFrS9kVvGPs1iu4Qpx0UlB\ns9NQivGP1mDtGsU2QRgbOw5D3bn9GC3dhvj6K3wWsJwgjyNICiMiShlK5cQS\n6fAAui9TxzatuwiBnXfsejYARBpm5EkxVLbcnpxiE6ugHCI6Ey9mUOsHak4j\nc+4nU25AfbZ6wEebHRUx/KtGuHU9b6pfN1srKXzX+Ng5iGJnnRF2RBpIao1P\n0weMifJHLKpsrgfDzxvShUMWEF50EWJyiRcUng6Imp1lAX800AeZAHy0H2bv\nqf3vHtylwVGh4QVZ7ntqmP3yPrX6mCWEcb9DEmuBhenaSRcsU1OfatLU/i+M\nycQi6tLBa3dN8BSL5jcFrSP0/FXDr+OjB7tFMX8ElSLAvEPikhBL3YpGJs4x\n5UxvL+jss3fQ+zL1hctbW07EYSdF3Z3LBvQ0egUiz4N1h/9hTP8aLrJ2NisS\nFXB6hNIdFlxBeZNqdlUOLj1ImQ5UlxEFAPbERg0e3O5io9vWyfigNZJPgMqs\n3OdY\r\n=Pl5h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICR/5BcOzkzBnu95MLhGcEj+nRAmh5vIIeFabnVcsOT+AiAgsI5Wzg4ihiuFljAjNt6a/xZ3GuxMG3XhIz+UmFZ7Gw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.3a79dfa6.0_1583808998737_0.38933668340913874"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.22e0f5c9.0":{"name":"@material/mwc-list","version":"0.14.0-canary.22e0f5c9.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.bd33cb56b.0","@material/list":"=6.0.0-canary.bd33cb56b.0","@material/mwc-base":"0.14.0-canary.22e0f5c9.0","@material/mwc-checkbox":"0.14.0-canary.22e0f5c9.0","@material/mwc-radio":"0.14.0-canary.22e0f5c9.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"ccb096ae11e367b4590851e53c023abbb22d2774","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ccb096ae11e367b4590851e53c023abbb22d2774/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.22e0f5c9.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-iLQWVsmdjFRFTgo9ZltlKp/0uuwHP6I2oIqbCZ1rrff3JyBGpfM+iN0m50nDBy15ObFaNZdzUOmoogabRyGYew==","shasum":"6b52560ed817e169e6bbd3ffb726ba4e15e6fb08","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.22e0f5c9.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZwLXCRA9TVsSAnZWagAAedgQAJkQVnO01aeZnqVQYnWl\n/bSDk7W6YaNui5wYO5l4rHlAAOIdcYLXXRxGfoEyE1SiW7J20nkwTbbnpr3l\nsnOtDVQdL9nCNYxTZEb8Qgg9c5k1ewt6Q4uxyeS92sD9ze1hMWXRFf8QKNzO\nk5ahdNT1Sdwq3QSNY922IDXm9DpmMj67hT2gCgc6MKFZVrIC3EyVOCzcfxWO\n5gHJMLeJpJqLZJpjrQGzIPoIhI7/LVypccF2ZDmDAkI9NqM7CoEyiaFt03EV\nZUx4cA1Cl4Hl412M88CULRTRe+qdgY8JRbQeoMpvijbNkaYHpiK3fJe9XEpN\nOqPJVEUXg+LPJO0rLV+/nVfYQ0RSdqObxi1hcNedCjGY5ui94ddAdladklll\nnDhx3/34Y+00OlS/6fxJitKZgMVFyVP/iNvJHBdZ/rIm0SJ11ZSBJTEJvPNg\nzfvcH5RbJGIpqf9Qs3hVl2zNyWI7Ybvtbw7dcRpfGp4xjKuka0cigs51uLcS\na70alBApf9mfcHaNtaPAh1DcFIUNpEpWcx/rZvDmwgrDDtr4dPi14TIXC7Pc\nfDO80X1aiUXJK05Cp9KPOksVe/he5qGy8sDbutbHRCelG/8qKSMuD1AY3q3A\n1Hz4Ml+yJCc9/5n3khdtwvkGhUl44mwBVqtCnAT1vJSyP91nDqjJ9UmS6MnC\nlpM+\r\n=g8u3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDl2LPw7/aHVbJ7K5l0etOu9oFm7DxVkScqF2hoeSNGEQIgKxkhjv8IMBuOlnJTr5TIXmo67UW2qQ0Ewfgkj6LiT8A="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.22e0f5c9.0_1583809238860_0.42819904030320033"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.f23a1d1b.0":{"name":"@material/mwc-list","version":"0.14.0-canary.f23a1d1b.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.26c049afa.0","@material/list":"=6.0.0-canary.26c049afa.0","@material/mwc-base":"0.14.0-canary.f23a1d1b.0","@material/mwc-checkbox":"0.14.0-canary.f23a1d1b.0","@material/mwc-radio":"0.14.0-canary.f23a1d1b.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"625010e9abdb8adc901198fa1ebdc99269b946c4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/625010e9abdb8adc901198fa1ebdc99269b946c4/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.f23a1d1b.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-K5aYyFE7TL8MIys31G6HDJJ2cCsyvbMeO529LXQbt4Rw/HP0npNgD6kPQkdKmXoBpoaaLkeGc1Vlv3XXXtAe3g==","shasum":"572ec9e22120ecb596b8594b67675fedc3467160","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.f23a1d1b.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZ/8YCRA9TVsSAnZWagAASbQP/0dtYZHg4fFPdoUBEJab\navA2ivXtG0dUh7DxdOpcY11MmpCCjvDqaD0MpdJl5TgyJMJf+KsrAxaJTHFE\nxK1s/uxaWLqQs9T55UkC1qohtuQgaYxabzyJmhUN5X3gE6LGu5o22VKct3L8\nETxKaRd44WSb9JtaPZV+GBuuEZMVuBuRYE7K4XwgJhk4CEnicD6KlfSVEaG9\nA7Z+x2pkFSGPcBE55zlKiNWlPnDadSNQYUvOIVJfZ2WhUajuDfQY0BhUMeod\nhztGaau2t39F8/JItdbiqfmHYmVu0Tz2l4SpcDCzBshtGwf3+XfflBp9PnYd\neuru3EgecVEoVvwP9uXLugjC9OEMOilhPhmSjfw/J1lLvo1ukMMfxqMQBmUh\n10P/7KoJQ0EhVgyxDJZPskieAvdmNSZtl3hrdiARtLQoFPTPSLPkGRh4J9yg\nhFMl7q71F9UdpCkPO5WWAOs81ItEvedcmwPOXmBZsFRR8mWK8LlwG0WfV21H\nvixUySvf54qBm0vilrIb2W6XJ0DenV7ELB20tfMHoqYx5fUocTQ/ky2kjvc1\n6fgw5zRrevVwGze9RoYUw5/djGF1WrEL4Hf5NSgS+1uqHDyeXwq2EbOtJm2p\nf3miC84FKm+EcnOufNFMSBbFsBjsccfq+L53GlJp3tya6XLgOAxW8Q8QBmTW\ns4Fr\r\n=cKth\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQHBldxyV7+mF4CxYFOqaZulypoZ8ej7Ci5ULVeK7mvAiAWbFr68w/5Wq/VPmJcNc0g+l6AzQdJLOKE3DveCvuXuA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.f23a1d1b.0_1583873816333_0.9639261542401059"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.34b2d69a.0":{"name":"@material/mwc-list","version":"0.14.0-canary.34b2d69a.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.26c049afa.0","@material/list":"=6.0.0-canary.26c049afa.0","@material/mwc-base":"0.14.0-canary.34b2d69a.0","@material/mwc-checkbox":"0.14.0-canary.34b2d69a.0","@material/mwc-radio":"0.14.0-canary.34b2d69a.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"b40bf9e324ad010a2ec93cf8677b25b843ad9c46","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b40bf9e324ad010a2ec93cf8677b25b843ad9c46/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.34b2d69a.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-+6YmCPwC6yAoOTaaiMn9qvGI9eCqVsB6g/rX8ZmfaBcrv000B89ovgPsYPI5aCln1Bc4S9n9FTYZcDC6+uko4A==","shasum":"555bf1b09056d748794558ffe68aa49711cc4c77","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.34b2d69a.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaANdCRA9TVsSAnZWagAAFg4P/0+FEuhURtCSkU6+sP1T\n7nXc/Nw8XwO1qqGXQTDDwu99fPPX2+bA+XKyLR+74htrNaVt/8q9SMv1w1bO\nE8FILKJ992VdYIwUjQ9uK3mmY7klyekpMH6U93iSfRrfMHwvbzNjsOZH/ovb\nActBDalYfPDzJ2gQ/cBRtdrOw84xTSHqtJU3OEA+EiSJQVhYaVTaiQ6tBVTp\n5MhGnCrT3ymdzrCPlcpPEAlgFwXI+AgU9GXN1lKB1zYEaxdusggt/h9uZtt9\noH26YlOgdbyvLR8BzBrOLOftCzMX02kNSuDoOtmsdUXE8IL2CR/6Yhi0dkjx\ndmfmYfGCFyWW7Ts0KIlvjRTlAFkKq6dFyKB6/Kc5cXG6U9gNiNy2EKX6lqYW\niOaRY9g119FrJARO960+cqCOAhOsIgxmNO96c8sD80XYiMVDpNFRUTPFt4sV\nRo3LJ18GthLh3Fx3q4obdFtw9T9wPK7DQKT4p79EsMsZyum6nYJMXyUXACrV\ncWGwsIgY7IXPuStUm1b38zVTFa6CUrLIU5twJZbPUcaWPlQz5QHyBlHOAk92\n+iruuJTHahJIDZdzFc6pbDxq4fqV1huZuL3wF6uIeyljUbJHzyzHqXK07+BU\nRYwgKtvA/lO4x+V4WTJsJ5o09cX+1uIqohfA/6/evgrLJwC94yTEL38Vvngm\noc/7\r\n=zjno\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCROxgKmT41Eo8YJ3L5cC8a5mtpbozQZlrgBstClfvV/QIgfOhs7CWcsYVqrCxU2qWvg/k2OJBNPiiOTVZFSk0U/t0="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.34b2d69a.0_1583874908789_0.2554328131323611"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.dc04abe1.0":{"name":"@material/mwc-list","version":"0.14.0-canary.dc04abe1.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.1db5c9fc8.0","@material/list":"=6.0.0-canary.1db5c9fc8.0","@material/mwc-base":"0.14.0-canary.dc04abe1.0","@material/mwc-checkbox":"0.14.0-canary.dc04abe1.0","@material/mwc-radio":"0.14.0-canary.dc04abe1.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"83603c5af2141bb893dc17dc4ff73baa5dbc7b64","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/83603c5af2141bb893dc17dc4ff73baa5dbc7b64/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.dc04abe1.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-V3L/QI9lRZI+BrKZCJnxPIxYULIpnwZKwU6xoamwEv5fieFn9+ndhYUPuJ4Nv9GDWiv00hycULV6VUcWcoWkGQ==","shasum":"d5b6174b7e6e7ead85eaa8cb0f044407034d55e3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.dc04abe1.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaA6CCRA9TVsSAnZWagAAaMQQAImu+Pk4svm9j923z0AQ\nDTe67Yom1eDZRPNvt6BciBy6SmMgc4tm1UtvB7vl+cFI1tuJheha/ntRFU47\n7AZlbe+8a+DTl71kBxM2flcCLV+ueveKwxp9k49xZ+SlWL6GbuUmgx/2wMiL\n5vWg3itEkfWBzMBrK5zxum/BPOjPzEZvjjES4cxhAaSOwQIigE4KK1WyvzId\nJCEdCvtbeJ1r3MK5kxBnqB3AzQl/v8w2aOMwc1tUbNRMLAPjHQM4rz0vOmf4\nZhtCYdJgDp4DXb1OVzKJtZhP1Y3tyD4lWQu0DPaD1JK+VkKpGO8Z9aB/NsvP\nlXxRTil8AdtxlEKhDw1WkMk09kD3Bf7I7ieNIV5xOG8OJgUmToVXLJO/qlH1\nalj157eS0hOoO9IHWhAE7xkgtboJWHScK9Fuoh/b7auAbLxQPgQpYXs0P4Dc\nL7+3ziJRyLWYG/hlE7fA1IRFzLQaAACvJONqvoZetWuH6WUQ3fUozQsO76yB\nEwCOxNq8HG4T/JEoZygM/r6T+fJa6L2ROtPXgcVEqgZuKuVGEf3oUtN0w9FK\nahmMoAMIIaAIwTpahZSJX1rcTvpduPk6DQg5yMzVHqCfirEdfF8s4gmTQsTt\nQikCrTuRajvhkxgBjNRbX3W7HDmw1ucD98LAvzLB8tYcCTkgT7/EAUxCaT4A\nKr3v\r\n=A94J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICD/vDg9JeZP4uZqg+3aeP56gSMtLMDpn3NvXrjYkeEkAiEAivW53oQvXg9KWPCte24PloGAp/TlfpucTJjcG32ygk4="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.dc04abe1.0_1583877762066_0.46689338249443413"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.04ccbc88.0":{"name":"@material/mwc-list","version":"0.14.0-canary.04ccbc88.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.1ae8130ce.0","@material/list":"=6.0.0-canary.1ae8130ce.0","@material/mwc-base":"0.14.0-canary.04ccbc88.0","@material/mwc-checkbox":"0.14.0-canary.04ccbc88.0","@material/mwc-radio":"0.14.0-canary.04ccbc88.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"bfcaa800a510585165a925b6961a7e6316f30f57","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfcaa800a510585165a925b6961a7e6316f30f57/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.04ccbc88.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-QrNwl93SrF14B68X3gBIATVtmRG47NVtyn/1IJhjFTPKyH7IoIk8+zjU4J0CCzMJepXnVFkyHN6cDsNvD9ne6Q==","shasum":"680b867c50c446e46f55ef980869919b4f62527a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.04ccbc88.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaDJDCRA9TVsSAnZWagAATyIP/A6vZ5mO9TqK0l6UVyup\n4OkD0vdko1xrvi/hrup7xrKdlp/dYxZn+ifJJnkFNDxlrqlUWUMzZbpBn8Bg\nmPVfTfyBBtiAoY/UBOcjkYfElXu6o0gw3SKCYUrr7OIHrkC60Oohwkz35bW0\nq0WZBg/iD83r9dDUxw1DnE25bGNVAi2LI87d/ky9ICGOCanWKyAc7tQax+ys\nCpQVbx8xgiAfh2kUOujmqcGipP51wiGc07B2uF1HxqqNW0o4fe21HgJmmRnl\nZ4+eQxidI0FVeKyNdHDWxf4InQSdSiYTck44bM115EXumdRonZoAw1aMCueC\nMEJMf70wOXgVmM+qEmMNWZFRfVivQhX0zbRwAQzBqic8wb4aRmUyeSo1MmnM\naFuYd/iAAO6d7q6TK27Z/dK9Ili1dsmyLdDXd5vk+5Hy5ls4li0xNNzNDA0D\ndtgbgAnk0YI/KtfyFmHuiirpgJhdlnIU/6lgEGDPTwwwFZHWHDd1BbgPy2N4\nRZ1P/8PW/MgVbLbBnEcvT4v+aWm9608K/SoIswV1wwU2BYCkDKp+4gr3pn80\nJTVmDo7bLmj9BQTrkg3GvFdMYnrHM/kNQLjCL6SN8r7LATiNpaQFVTUt58lw\nJJB4ebL4dqiCN0978zcsaDV53j+AlhcgTgn8Oqy6CTlWnaWxIDviYVszX7W9\nQbQb\r\n=8wn4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4RDtqQYGOpXul7/yafMcUQLfYbf78jygmTLfJAC3dSAIgdDmt793EguUdCgVfH3KyIg1vVD4Eb7QWpBJ/wNmyweM="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.04ccbc88.0_1583886915453_0.3939999364130693"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.55338c25.0":{"name":"@material/mwc-list","version":"0.14.0-canary.55338c25.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.1ae8130ce.0","@material/list":"=6.0.0-canary.1ae8130ce.0","@material/mwc-base":"0.14.0-canary.55338c25.0","@material/mwc-checkbox":"0.14.0-canary.55338c25.0","@material/mwc-radio":"0.14.0-canary.55338c25.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"6251bd82d8c2b37985e6a165d6904180ec7a96e3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6251bd82d8c2b37985e6a165d6904180ec7a96e3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.55338c25.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-qcFe2NGK6a5+QSQxhOWKLUJLh32ImPAk65evCsxGtJLeEEM8/0EkewSyBZktBsR3HH7Hd8xcagl8YCIA7uuj1w==","shasum":"003e916c9a06848d6afc2b0ed84208e3d951e329","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.55338c25.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaIXZCRA9TVsSAnZWagAAm8wP/3vHP/zcR92L3yq0u6W+\nEfhKtTG9ZNXNYGW1VwT0CeuMIUdMf8kc6rE/jrjXnvfRyskXx3jch3MVex4C\nEWQ/qXHUoEjBHdk/UbefwBv8muL/SlfWHTX4TVXaKQcudEmZi53/MnPVmt/s\nv8U5845MPIcUlLg9SNNKUSQRs3sce3Wg0bxd+sgPqicA0cB0wyarXmfN+pZ2\n1UbJzgKzzjgMrNPlIcVgjfACGnJhToKrivMRBciZuw4zYpfKu2rrlrjyOtNJ\nY5ZYcXiijLbdoR4HH7J02VEb8selbHbt016HooRpUMMm/qPMnKbhmqrfdl7W\nBCjPReUxRzDL8cNvQiknETOrLnKUN/C8da3ryvhAZIy3EF4iGwT4U9d6YiZM\nPkwa7Ydyk4Jg1fdns4JSKz7xDcVzDoWhY/VtYR7ntf/wbEEUSd2/E5gkg8PJ\nBxXSXskHqJABocRD6CEsTFdNTb0omZrF/yBgT3NSomyWOg3Q4/8eEJNjgd8D\n/ua/sK8sdVqpCqlzQkN3LS3EYOlwDr8sXrmCtxLlIyrpxeHzbS2PCErqYpTL\nzbLA9mWJVzt6GjjtS5y8LHmbm+iHNcPj1aWxbGgbkg9cm2bgVCxSfHRTiwLi\nxtzK30DyWZ97XphoFiv1D7wsK/N0AeDd9YRJvcnTrU4ZFouPw+mYyf2Bpv7f\nOA0u\r\n=v6Al\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjKtDVqEv/aNdow4bt24hf8A8PKp+wh3XN7XdkO5buCQIhANRx3toaueEdk1mud5mkuCjy6ouK5VMlkcD3DRq9bI5F"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.55338c25.0_1583908313379_0.12607717761648463"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.b7e388f3.0":{"name":"@material/mwc-list","version":"0.14.0-canary.b7e388f3.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.1ae8130ce.0","@material/list":"=6.0.0-canary.1ae8130ce.0","@material/mwc-base":"0.14.0-canary.b7e388f3.0","@material/mwc-checkbox":"0.14.0-canary.b7e388f3.0","@material/mwc-radio":"0.14.0-canary.b7e388f3.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"1ce172712209d5abf28a65e797f46fdddb7ea704","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1ce172712209d5abf28a65e797f46fdddb7ea704/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.b7e388f3.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-LtxKSy0tYk/N/d9Tb6r9FQ/fjzz3Ui15JMbnGi+JXLJuSF4yq9eX2ja2AabGJa7+aa0a9DHp0Ymdv5V0e3IlRg==","shasum":"156b7d9fa5cbecfbc02d712d5e98c92901e4f7f3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.b7e388f3.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaUf4CRA9TVsSAnZWagAAM3EQAJOmN6FEhekS1egPKGzx\nhVoq4KoFmlBhgzQuujFiI5km7idzvRTAjs7Jd3X2mEijoF/IRnuN8h5qmFjy\nJDOJosY07gL1Ybb6OWhKvtmVH1vryjWIbUmSxS6FWVDVdktMQPGCTztSeCwg\nTYmIWdkBd5OwXCQqhD6W/WlbnsQH1rWR4L4kPMIi58CrMDABdxR0cfvRws/2\nZeNzt41ttfs7X3SSGOvZ9FwcNb03FYUlamfRxoVyMSZexvKfWwwP9msXYkrm\n3QUxQWXx4By6WSZP+YKZIQDTTm/2W5i4Q0rotZ7DNMrmzXdbYmw3IU3W7B/x\nlzLN1qGsIHDMw3jZN2+CInLTdufjp+xOT74nOj7sQz0LkHUkopHwPoIrXUNp\n47LUPl8vo3HB7S3x6ZssMuLh2DOjBIOi01SUW0AvCDM6AM8p6alzOCQYqRKx\nuoFGbC4Pfx+J3UkCAHLAk/np9/8X+4U7/NzwzYkzM2Oa8e1xfp5i2Jmb6rHn\nKvIrYaLV7Akv/2fqPe1uenOzXxQONKAKXjvZE00rO07tEP4cr5Yufg0I9Uxv\nV4lLjKTs0SkOjtPMV2TVY2VPXf3jfK2vVrVrYpB2mRja2/x/fKXVCyfoccyb\n80gNBb5/WgcqP0ATe91Ln0d/XPo/t6J3i5SXI79/F7OpjEUKiLQ3oc8dLCsT\nBdtZ\r\n=keE+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDswVy/11x/3cP0uEvZ9XhIBCllubsrEsMfpXgtaKJXHQIgBj17YYQZpbnjIptVIBR0Neb+SaxlE3whQh/uuVaNi+0="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.b7e388f3.0_1583958007889_0.9284366163611195"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.b3211481.0":{"name":"@material/mwc-list","version":"0.14.0-canary.b3211481.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.1ae8130ce.0","@material/list":"=6.0.0-canary.1ae8130ce.0","@material/mwc-base":"0.14.0-canary.b3211481.0","@material/mwc-checkbox":"0.14.0-canary.b3211481.0","@material/mwc-radio":"0.14.0-canary.b3211481.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"7b6c73b4ab63cb7701379685a556ece3324d1c22","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b6c73b4ab63cb7701379685a556ece3324d1c22/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.b3211481.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-PNtwP5+n1rG/xW3JvEpeo380JHODqJN/AlR2lTAmTkuHXJJfIQi+pKskVePfsz74l/EI/UNn7/rMuhYZMrneRg==","shasum":"579889550ca9c7a9a1d98dbc8b71dee2b2635008","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.b3211481.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaUj1CRA9TVsSAnZWagAAg4QP/1GZi4iXAoF+DHFjSK0R\nZk+77WDJhtaRii3rRh+FoyvFHwQZDXmKZ7zzwE7KhsM28VvQzHn5194oCoKu\nbVyH96RGzgiya4BurhPgUNKBG0nCPx051FcWpQ8CfAP31jMFdjvsA4TplaPg\nwv5B5NA6XXAchoXDWQauIIU2PLOFx5MWuXYonc+uViZf5HvejClfJop46rHV\nloj30OLCCz0Ck6sIvDY/KB7GlMRHEehwn3Zjj0VRMRBZUANk7SHqD+tRbRnh\nXTK3XesGZ2KaDlnB1vptfzYkRIgUy2nvQ5BtIMZ9qHoCE7cG7RV63IFeTAXg\nfnqjwm8R2vHuJY/eViF+L2QdcvNueCGwceswFOIU3SVawdc4Iw3tDZSZ5AfC\nIDKYD2USR8PLyjiyhWwUIEQ7Pz14UCmcJSsp9tQkKt8XFNWgZvvwrhuoNvzH\nBVMFzvogQcs1WGLMiRUOvelTmO+KiBmYSGUXY1Ldm6sTeNNommGeo1hjd/ix\nQ4xlJ2LxmkyXrmyavg9I5p1oM6/gX4ky97CW4cKHVpS7N6h1KBFqPMJhrSa9\nw7brhmASZ+6d+34WxDb9siOKKu0YlFep5fqaH6DPACh73G2EiYnid+xR9Ab4\nLU44M0QtlnMwQF6thULmsDIW4QnNvuAQMF+Py8qfA9nxVbc7lyVmh7Y7H3MX\nS17B\r\n=UJNY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEYDgqWOQmWbhfhZu+4S6qpPI+N+WZlNp9rxO8/obRTOAiEAobUa1QOhC8PTD/ffxw0ZE88j/CUrZDG4Ln1zQYoG+gU="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.b3211481.0_1583958260650_0.8431833138379161"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.0b5c7f23.0":{"name":"@material/mwc-list","version":"0.14.0-canary.0b5c7f23.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.d5808057f.0","@material/list":"=6.0.0-canary.d5808057f.0","@material/mwc-base":"0.14.0-canary.0b5c7f23.0","@material/mwc-checkbox":"0.14.0-canary.0b5c7f23.0","@material/mwc-radio":"0.14.0-canary.0b5c7f23.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"c142ca8fe1db14da6fd164a99ca71277489f9b16","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c142ca8fe1db14da6fd164a99ca71277489f9b16/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.0b5c7f23.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-f2/JqSV257szwxilopZZI0fD72evq0/1zXiE5oFZ8BszUSs88BBfgNk78v2QXHSjOIjaIqqnPI23j504uLsTjg==","shasum":"a1c148f696f3529b57acad980b13a67d1b058fd5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.0b5c7f23.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaV4GCRA9TVsSAnZWagAAgTsP/RZ4SXOm8c4T6L6UTucT\nLPScQgklDF/urdGdIQWLsask3uUNaQHUFhEpogkTPInnj93L+svMi5J0QhWT\nmYMR5m86NP1eSnSk++WZPk+ZXImEiAVxVu6v6/BwaarloEXv6o8Isoj0+Kle\nlae0dRJ2Jpuz+PxX0Z8FfOBAvesjbgDaYPlXC8LH+x6jkGOoY/K/KjB7t1uV\nK5OI0057xtIYpvc5rUKq8z2XSyzjEAILRnX3/A04RWN5IHmqzpvfxQnYO81m\niH3vGSx6GKq16uKZHqIVeWlivabl807SuQw3J9RMnpFp76n4GNBDvvvZE1QN\nrZZaLvTBKZGtFYp8bhsUhRtX6DyUaqXqkQmuezECdS2ad2T6T3P10XkYf3ko\nm6Gr+MUC2UbpJk7AtbdwiT7eUmdl+6VKuXQImF2jlFa6+mJdORETKw58XWrp\nNYpSFFNsPyJ9vvfDb34ZrmBCFl97g1VcQ5OIdhT3FMCO5yGqhSyXH9cP6KfM\ntZouGjcDOr6GmLO4V1JBBJFUeFlMRaehtB6XYwniM4S3+tqs+Y26NULCN8fz\n2rBx0DqRM6GoQzb/HYEVpt6AFPJlCEL/F62yuO8ZySKXqy8aHnygQUXEWTd+\nnMbJ5YvdplR++TqMGZTuQmsF77QE3P7Oyw9S8F2V2XSybpm8wxw+HEnB/G8V\nSMEV\r\n=PLcC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOUuw61nFCNGldE+g3VCbh4cxBkkAh8xcTbLO8W86MzgIgOTQr8eJ2hL2V/0TlObdK4aGZYXpS2oUB7nG6P9vTku4="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.0b5c7f23.0_1583963653801_0.10560760008682668"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.6c0f0b27.0":{"name":"@material/mwc-list","version":"0.14.0-canary.6c0f0b27.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.bec065920.0","@material/list":"=6.0.0-canary.bec065920.0","@material/mwc-base":"0.14.0-canary.6c0f0b27.0","@material/mwc-checkbox":"0.14.0-canary.6c0f0b27.0","@material/mwc-radio":"0.14.0-canary.6c0f0b27.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"642e3027b591cf821c0ef159a9bd31f56677de91","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/642e3027b591cf821c0ef159a9bd31f56677de91/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.6c0f0b27.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-UIvnqJPUiGpNI36bA+2s6rRrz5dJHZLz1OlCcS+U4eik/EtUQdlSECuLEJ+StJjRW+o81r2BMSvgXdqZrLMD0A==","shasum":"fab76c28c8644a383ea487babfe58278a6a39c0a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.6c0f0b27.0.tgz","fileCount":79,"unpackedSize":857427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeaqbvCRA9TVsSAnZWagAA2NEQAIBHpedCAFfGg05RglXg\nnzHdjh2xPCs/BCtf+PkO0fvFEmaoka+97LAyztnKkcF5Wh4TkGVoreSb3WB8\ndkPappjtX6dXavTpmOBh47PDzK46casHk6aglvc95BReg0v5/vKH0CmIDAas\ngsJnQqJjraUUXQhfM4HdsR4Tv1hIl80Oqo81RycSrhiWxULlLfyJlxI9BRF2\nKObnn+k+R3YGoX/dW7NbYtrMBiJxk9AjXi1S9q7yXDR9wGtVa+tXDws+h1r+\nAmlYzns1sx1FtApIuKuhp9zV3rEQ6NCD2jhPgxVmoeO8ZIoGiQuih63yMF7E\ncfzqkZ05G0QaqlHl+GQq9G/GKX9IRZ1Zm+EI4IKZOSrAfeDpxvrOqsIGOEBi\nkaLviCX/tFa104oRpIzNVMKmrwPDalpychwwi01YOBmcpVpiuqniPzmkQ+e6\njquCMv4JZuLC/0iq7vANPcf8lUZUyD7YW4uvAh8TpBRQNLLtw+64/SGAjdSc\nsLbhEYCPbh+ZzK/DZWSX/JD4bvWsNEXyC5f+XzGma13BQXQBwoijV7Z4fdcu\nlkCMxSG0xteD3uFeYItJGmcozVhEWyGjWBVxUt7Odhtmm+wKVwyTJph2oRIA\nnzzdxx5Z+klNKIQ6uM0i+MmoV0aMGKbGRvA4LcNUPuHKMYX81nY4hxckl7Zn\n9g4r\r\n=yukQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDE9SAR4lHQTGXlMigEUwkC35U6B5Yxzmao+3sdkOj5kgIgeWVgmI2ilxL2KeFwU0rNEFF3k/jg85nXZOEgIffx9SM="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.6c0f0b27.0_1584047855427_0.8932329533950567"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.b6c53425.0":{"name":"@material/mwc-list","version":"0.14.0-canary.b6c53425.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.bec065920.0","@material/list":"=6.0.0-canary.bec065920.0","@material/mwc-base":"0.14.0-canary.b6c53425.0","@material/mwc-checkbox":"0.14.0-canary.b6c53425.0","@material/mwc-radio":"0.14.0-canary.b6c53425.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"21e9310c19b1139fef9125fef8610235d0ef0e4b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/21e9310c19b1139fef9125fef8610235d0ef0e4b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.b6c53425.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-G71IQOoAmuMPbOMojGKeM2RXeprlhA51Kksc2gnhVFsdncyiwdLuFcozeL0OoUjfj5pks9XeXh+KlBNXxbwmNw==","shasum":"855e20c988223e6ca0cdf6189dd3d08b9f804982","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.b6c53425.0.tgz","fileCount":80,"unpackedSize":923120,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJea7sOCRA9TVsSAnZWagAAq0AP/inhFa0ldLShWQqqVT5S\ndcW8VyJpIng330ya4A1cZPnx4YO8Q8uQEGKRoAJGEGWppNMgdLgAhpFXUE2G\nDu72TE3oR9dF/C4VvREWE5t1rPPYmWtcU3zO1jpUqozdR5oJKEXAyN/YxQbw\n7C8LTHjIPrJbLCTfshrrP6ZSo7/PqlYdG8KDkDhcWXJUEkNiUz8kJTrJgXfA\nwl41chJJ0Csaub/hRfwgqxl5YM+54X/OZ4AyxTqBVIjeVzemQoSIA1TvZBoR\nSnmlWm1bFQtMmP9weSRDdsXul/FYWuzihOVjW4NwWVbSvCg0/I5NOfuwTlr7\nRsXut/nIVklSQDxm3wX5m98bkGvSUpm1i4+rqdnxDwCN91Ggj+733005gPup\nhivLauApOpkzZasCJVpZ+VEr5SIdozV2soIfdaq0dEKBjPnR4+9SN50QmLIL\nsgz3mKf1YLDoB+f7kd3JAKZeqt+ZAOaX64DKvvLGb1kVK7IUxeiH6TeKAyca\nmYGbgGPtGKX+EIQAeBVMev/vgjny9d0ri50Yg4Q0rwHjxywpNnHz9cPRn1zN\ne3QTu/Sw1MzJBg44E8u2oVxTpLg3IlntKnJiMwXzACS4lxxw9okFe0tMoZtW\nqz3iJMaDNBgYcoygY0Pemi3pDDewrLtlbT+nXPWNMdF/usO8r1i+mOoc8de7\nIit1\r\n=LgJC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDDRpzSSHdUQwQT+vpA2HySSFcpf0RGD5hzIt9G1uuXWAiAKE1IV8h5RF1HUw6W9j7y0Lr0KYGx+5G1sckDmp9vZog=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.b6c53425.0_1584118541774_0.27443816356780015"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.306cabed.0":{"name":"@material/mwc-list","version":"0.14.0-canary.306cabed.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.bec065920.0","@material/list":"=6.0.0-canary.bec065920.0","@material/mwc-base":"0.14.0-canary.306cabed.0","@material/mwc-checkbox":"0.14.0-canary.306cabed.0","@material/mwc-radio":"0.14.0-canary.306cabed.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"7b07db227ed0e98a8a55068a9460e3969aa14b37","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b07db227ed0e98a8a55068a9460e3969aa14b37/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.306cabed.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-37+DFj4kUakRN7iBO/PY1Ry1hkQXiF63weuWkDnDhJ3BkCb3D/YvKAMftZ4nNsqYOLftyn1+MeI9BElcC41sVg==","shasum":"1ecfcd31c2bc232c4e713030714dfb45ad827c31","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.306cabed.0.tgz","fileCount":80,"unpackedSize":923273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecT6NCRA9TVsSAnZWagAA6AsP/AmMNm9TXFH3cugxh8cC\nPPoQsPe0N2C7Fhfnw/g5Efy4C9jzEI0QgltJvLdI8GnbPn+QVdTyt2qfri35\nnEc9OYSDEC/nnqCBzkGA6sPnUkhWlyDZMEiBF/jNeuoITOc2nS/yorEQYpSp\nOvcDeC3mnsuVAvPMY4V4lJ1zx6IWCo77EwrYq8R+CzvRMCW4dFP5JBp8Gcxo\nITW/zSjF4/xW4o5Yzl5nEm7rd46qxYRMnfxfHy/JaIzWOGb2fp4BYbQAqrJn\nqq9R0LD53CPO3DmUwXVKzlimH4XKclNmDd9sWdECgUCc80ueAqwfeLkRLMVO\nzo7R/HsO6LY4YUtSg15ZGVMBTasn5UMXz6QFiIMvX0oT3JJ7X7jr8zFK1O4C\n5iGesh4Jz4WwuFoyWZGjgk2iM2a7k+uB2frOeoQAqG7yQ6Qyk/gD63llbFPC\n3ipo3egfYGZsl8e2eKm0cSGvUfXy09/td0ILQIofsxHcY/Q/BXKGLHUkBtie\nsN5ZsqvRO8NXCEvJcsqswoUks2NKept3s2uT9/YJtM1PHP2FiVHjrQtsrDKm\nIUpLYdvH7st6Nk7N/fOokzlM0buzreZUovWY81yjNjcqpGkiraZB+oDK1M/C\n0DhkMU5JqtI01PfrNdH0+hYvg4ytdxdMrEF7Zi74aft4cbY2lhL+jyH0oOTH\nwKJY\r\n=AQsS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFAa7RdN5g3rLWuWur3js3GzfZAlw7aqgMQHGFnqE7SAIgVKy0Yb6AUK8ZN+LdNMXMj7MA7KIi0PArdn7L77Yrj5s="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.306cabed.0_1584479884853_0.5194971274006122"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.4e250cbc.0":{"name":"@material/mwc-list","version":"0.14.0-canary.4e250cbc.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.776291ef0.0","@material/list":"=6.0.0-canary.776291ef0.0","@material/mwc-base":"0.14.0-canary.4e250cbc.0","@material/mwc-checkbox":"0.14.0-canary.4e250cbc.0","@material/mwc-radio":"0.14.0-canary.4e250cbc.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"8e0b10a13a5b20d13409bc4bec6f11a4ff757663","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8e0b10a13a5b20d13409bc4bec6f11a4ff757663/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.4e250cbc.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-L+gxHEInhPqtm0Z6Jqad4CoikShCea0lT6HfXzBhbLvAwI3vjyWWKEzBD6MRLO1cpvyt9M6HptfjjRfGC7zXBw==","shasum":"0c7df3d4e949b7dd0644c7ebe35adf418053fd7a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.4e250cbc.0.tgz","fileCount":80,"unpackedSize":923273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecT/+CRA9TVsSAnZWagAAlYsQAJt1Y0tOWMeb6HVF1yCy\njOYkC75TLlmZCbKzUT1s90qYobG6i3xF/26J9eHGd4+ypOEqrcY5BBZgysur\nTVAJWZBuykwO/MA+qdY4rFKmpVsylRPNslmqdbxo9mjTH2o5niGI8xiFhuZc\nA3+GbWP9w9U6n2pnu+yDY43Mu2sMwY2s/cU1RvhcoVRzaLR0PGqNYkwWesO1\nYo0vi5R5zwPyQQ9uKEyAIDLbuGkWJvrSHlThtap7CTBFILjqLDxKtKgINcCi\n7BoNmcjcJ9q6N7sbicDxVV1nEg/wuTgmkT2jQ9obSguZCoiL2Zt7cNZG8A8I\n/QWinzwQhdymCYah33fZxjYx15ik7KfhKRybvxTxm6X6TchwbrBYJ27F4pU5\nkS/8IZBvGM60I2MYme8iAFW2xcPKk1PTwR3K+JAba08GFFTwDcidZ5Nr89n1\noT7arOhXj4l3A2L6iygLNtqR5/QC+PB/CAL6jxFOxxAzJ7rdJI8hEyANwWUb\nyw0yP1T9PO6D9hdXjtMyCiiRnxuBJtehRP6eq/0Neb02lDdic5H3d6JPHeWs\nhIpFhF7PUdpC+lQDY9YGBmsbdqabB+2nGS7alOJIqTUJwqpOaUbAy9LxXwmO\n+x9OxVsyxKlkxvjXW0JVal62blFh/6nq1+KIsJTBZE8F4Aov81JwEDyHzQ7Z\nIBG1\r\n=f3kH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDUqfEUij5lL0QKaFGR3B7NkeZwCmn4LY3oKVCNSri5dgIgQQ+T/IIuaxChExjIyhEt8pi2lx69jF4o2vafkbi46uU="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.4e250cbc.0_1584480253611_0.18529331279785666"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.ff82d9ec.0":{"name":"@material/mwc-list","version":"0.14.0-canary.ff82d9ec.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.6b48781bf.0","@material/list":"=6.0.0-canary.6b48781bf.0","@material/mwc-base":"0.14.0-canary.ff82d9ec.0","@material/mwc-checkbox":"0.14.0-canary.ff82d9ec.0","@material/mwc-radio":"0.14.0-canary.ff82d9ec.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"0af402cd2ff3748cfa5f7956ad2211ec9271c83e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0af402cd2ff3748cfa5f7956ad2211ec9271c83e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.ff82d9ec.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-N//kuVKA2Yv5rNZTBj79foWEYgXGY8AP2nhBjfsnoi+0qJjkoW0oImwFtkl6BptBNYguDgnbJfkUgFoZqIKpzg==","shasum":"92335a41bf2741adffd837588b5b48193986971f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.ff82d9ec.0.tgz","fileCount":80,"unpackedSize":923273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecmZUCRA9TVsSAnZWagAAMdMP/3yJkH16YoP6GgB3IJ2K\nlikFGKns2mDeomCOBDPkEbebGdeXPF8Ik3p7Q89IK3YgQM0LVj+U7J7MT3E5\nI21s/K2tc5f+DncUj54wYCrjsGBV0cqc/QB6xGc6DaPydbrXBw1uArTH5kd3\nWICNMV2FzRRkGZPJxxZamcdzIGHQO5vtm4rv7ivNt62ftkkC8ifGAwO16J3q\nf53m+rhN8laOswy25YqpSDEIK3UULOEx/eWczvggQQK2JNZ8GXV1d7Qcnls9\nWYdkfdJMfW/GbHzlj+UNwKKCrP5NSZdnFguTD2vOzr3ht83DRRcYJR7myq8/\njYyyw0ZhrbgUQuhnlRFU/vrqSTTOUJxBIzi0FkUKKXN4FyVCsbU9xj+fn2n/\nOaDSzciaMl93FJPOCvn/YyFdw5RqIPxawLyJvQ7VBnU4Ff2j4NbooeL+1kfu\nmnhXQzk7PMtMsQRlAlIkWwRS1wxtTbqjP7Eb3tKGhkANQxxSE7++7TgVtrVi\n9u8AC3hs4Rjz7GOn2nio+709j5zLm77wGP/A4yoo3SlFCe2VubmWGs1hZiVs\nAtDNxGt+o0FVGuxhICnrmuXa4IlNrphDqsRPJ1jIb46p9vP/Z+NK0CQFUB9z\nJ/F7Q0GaG7hx2h+0ysRo4ASINXf3N9RIPXYUoF4uEOrv8rPt7pkb8itctaI+\nWkvM\r\n=GaxL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB3uNS76uFe+EeppZbYdP5bdje7HetEqy1XwT8Rxn47EAiEAnAYAauqUlJuTn8DQO3ZerHTQULfQH6C+uxDlTfArZSs="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.ff82d9ec.0_1584555604460_0.9494517012426251"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.f50f48ef.0":{"name":"@material/mwc-list","version":"0.14.0-canary.f50f48ef.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.6b48781bf.0","@material/list":"=6.0.0-canary.6b48781bf.0","@material/mwc-base":"0.14.0-canary.f50f48ef.0","@material/mwc-checkbox":"0.14.0-canary.f50f48ef.0","@material/mwc-radio":"0.14.0-canary.f50f48ef.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"0c4d2eecbe04ec4e08549650e593ff154b7d7e84","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0c4d2eecbe04ec4e08549650e593ff154b7d7e84/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.f50f48ef.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-lYdVGZnlTDajVkTX3QKzaNGUIsWwy59ikIzUI0Uhyq7WVVxuwp61C2mdwNa7Em5606FXQ6xeZkulTjRrqkYxHg==","shasum":"5597810575a40193aa3f6a8ddf1c5aa372a181a0","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.f50f48ef.0.tgz","fileCount":80,"unpackedSize":923273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec8AyCRA9TVsSAnZWagAAjKEP/19YBQmIOUKtLdjC6W6S\ncV8zBLcjkmQZ+X4zKGn9FYnH+RIekd1Y49Fj67PTrHAh9VsptOlgKKPLCKQl\nGW/fQYTeCgdraXEtLntKUWUpvPjwgaoyrp5Ng0d5fZhzD3pk3Ud+3McXpqod\nOsczsXReb1kCPpRPsTWaG2zmjSlwwHlQo/0w3hNNrmRhRvTmbftc+gaReUbr\nNYPuUPMm9mIWreQtG0eV88vXCTOotJMuyJM+cdAbEbVer2kLM+uh54mf6JwV\neIPOOit8JM7r/9JikHsegnhtZaLv4ALexuomsoosclW/G2i57eYAezd3IVXt\nY0ww9iu8kjDh5HcbNulBQISjT2FP7e0x/T1jbMMO+pq9MQ0WvGPdA+71p7Ru\nRM3TvQG8iF627TWKdrA6XxEGGna2Q5mbTf9vdHzJh33fA4sfDObR5yqxsz/d\nbzLnbkWWR79DZezcgn5Plz4a+ephDT+1Liqxs/T7ee2PyKEw4jrlgkgkIgYY\nc4MCreWASYTkN39+2X8tsYIG9uUap7En8GIbXUd4smPG5NdlaVq2X5k1UE1K\npDL3VZuJPuvZaOuY836y9RWWMKeLc0W2bAEXx9GGg+7N/RJWN5GjF4VNWXFU\n3rpxjBwRO9YVcqbhRnXQlLcocmjA+iaTYypxqKr6G6xAY1pCZj7n8gRsSUjT\nByEx\r\n=Afns\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyLcFkC2B8L37Y/HdYAGZff28ghgkf++7YxjvmOAH2QAIgYIrccGVb+R1aZeaCkN2cfR8mVrdzlSIivM+2cozhK6E="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.f50f48ef.0_1584644145839_0.814871742731939"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0-canary.134cf877.0":{"name":"@material/mwc-list","version":"0.14.0-canary.134cf877.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.a88c8e4dc.0","@material/list":"=6.0.0-canary.a88c8e4dc.0","@material/mwc-base":"0.14.0-canary.134cf877.0","@material/mwc-checkbox":"0.14.0-canary.134cf877.0","@material/mwc-radio":"0.14.0-canary.134cf877.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"c237581285beb5a84c39a5ea15dc95e9a865e057","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c237581285beb5a84c39a5ea15dc95e9a865e057/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.14.0-canary.134cf877.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-NssDR8uCCU2H5RmQu176jSxNKuqmtGFj0L3pbv39E2+A/KVTyJ+exdytdJhjZau+9QE17zL/6TkmAKF1E3PA1g==","shasum":"054f85931e3e481aac202970a6bd660c9948cad1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0-canary.134cf877.0.tgz","fileCount":80,"unpackedSize":923273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec9iJCRA9TVsSAnZWagAANasP/RbSzWrbGLo4IzGYoOMr\n/WHym/tS3C2WczSvc+EB8IFkw0PsDVLXOdH0OM4DwLi1yW4OldsHZT/xy0bO\nKip8jPDnOBBlDReP7gRm0IUoAdZ7AiVRVZvXCn02/FUq5e9kaUE1bw0OLl3F\nR6+RYQbd7+vf+3HqlOJBMtY0Co5LW5SiXBvu2Q2+Sj8qePCUstktDUA+8wnn\n5IVG8hv3Ju249ry5dhmYOcSadqjr7zDGpCTl5me+am99MR4mi+4fOPIubl8R\ndkrYOHidK+WQFW4pjlzsijikX4UfGN3Yi5QTN4D+iTlQNbqNqr03oKojvAZc\nkyGPhXoTt80BRcaH6wtn30j/kR685zBSY17/8PAEUe9FHgtPEbO3/WJQNtuE\nyje0vl7DPupnQbVAl1Vw5F033tg1ZrsJ71IRxbW9hwaNmyTmVB/C65LTc5Ic\nE6eJwzCaNlDmln8zk+VOzJMKt2Qz99w+nOX+JwSvPbBcmJIt2nO+so1yBedv\nK1qBL3lsTaQFfPOaAXmtpPkxG7XlIG0IPIgT8NatzCQ04IkV923DxF2+8K7r\nOHFpsymVNX2bgqHsBZjC19TE/Onxt6FM1tzhOW5g82BFvou5J6EeSlJHAtvV\nd0cmJLdag2mS8z125/nz53PnY9Wmku2gsqDH9w+bYGGVP0aXzYKfV1eNYW6a\n/HRL\r\n=1+ut\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDiyfwzdy69nf7HNA+V7ZmnNC3Bgr5pVqSeSbe4aoBzMAiEAhOy1K6rVJopLUJoQBAgetnWBkpmsjny38QMMWpx80mM="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0-canary.134cf877.0_1584650376746_0.21720207863146856"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.0":{"name":"@material/mwc-list","version":"0.14.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.a88c8e4dc.0","@material/list":"=6.0.0-canary.a88c8e4dc.0","@material/mwc-base":"^0.14.0","@material/mwc-checkbox":"^0.14.0","@material/mwc-radio":"^0.14.0","lit-element":"^2.2.1","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"ac28113f4d46ab2f986ce0aade128eb66d3017c0","_id":"@material/mwc-list@0.14.0","_nodeVersion":"12.16.1","_npmVersion":"lerna/3.20.2/node@v12.16.1+x64 (darwin)","dist":{"integrity":"sha512-bsFrCwtFzTqUapl0BepvYdv0fPaI7Uc6bC3hgsttczDLMOfEzdYh792vDDjSihLWMG69dUmTlyrvdOLsyzjzLg==","shasum":"ab52d57035084cc60d560653dc07ab8f268506c7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.0.tgz","fileCount":80,"unpackedSize":923204,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec+QRCRA9TVsSAnZWagAAMocQAIDy3dSBnBLALXQkU2uE\nIkcxP7onV7VDQac39k72XdSjP2ecMTuOfLUBUSt0MPDBFXYxG7K4jXtHAuCm\nnx3+fVJASOboltZ46dcXUZLwW+BBcaf+7NKiwXaPtd74ByRIJMFibOqEWn5s\ntiRss9dVsu+CwAhaj7NxpF0m6nEyFNI+BhnmJlSCOzPSC72x/6Ec04AF9ugv\nfAxY30fW/YvIB/Vcj23L4D66UlC82IfnK83EwWL85jnSzYKOR1Fjnl1NkgZC\n7C7nCx0OjPPNivKMgnzzxSFzPOsxKxRAIP1DQKyLlTsPcjea6ecJnpLsi4Cc\n6oOfBTx4DjVmwBroU4fIdPP0/XMDpAHNNUbHLHAhkiorU5puTluNcxG7p/QS\ny80KXTfHVbs8/8+o81wG3RMNGV+Qxvrd6/nkjaDuWscNhjAWuakXVw5m2ve5\nhBQ9Zeanyrp9t7zW0sqXvksfjCYXQFLER9ykgS53QnLQm1dsQb2u2eJwQGTx\nDNtWE0HlxhoiLy2szPou/OTd9qVXAx3ro34xGNSSPqR1E0Uf2s+xuRlGuesB\nn6NkKU8SGgYaR09uvKs0iASn9/ATEB8jKcxBQXqSretkyW3bnQUZO6Sph53V\neTdqSmng0nKIKQ69RFSEEsPg2PiXTJ/INtm/1ewHEBGdnrJsidLZ15roM5CM\nw63h\r\n=EF8y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICJzatc7lHqTYlNYsS0/IWEfnAjMjSpU1vTYLGSE8colAiEA/Ga3Ijy/fDMGmEybV1lZq4Wks1kEP6f7orKl3T+DqDk="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"azakus","email":"dfreedm2@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.0_1584653328496_0.890618320839923"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.2c1a4913.0":{"name":"@material/mwc-list","version":"0.15.0-canary.2c1a4913.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.a88c8e4dc.0","@material/list":"=6.0.0-canary.a88c8e4dc.0","@material/mwc-base":"0.15.0-canary.2c1a4913.0","@material/mwc-checkbox":"0.15.0-canary.2c1a4913.0","@material/mwc-radio":"0.15.0-canary.2c1a4913.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"8d9a4fb2b0ac4979d966b16e203b2dd0f388554f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d9a4fb2b0ac4979d966b16e203b2dd0f388554f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.2c1a4913.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-vaB0X00Oh3rVQ+MsDmC9qz9FYnO2zl9l+NHXnmCssVuHNujo0l54Wp8P04tfKEG6jBLPRK/VQanFaw4GvnsWgw==","shasum":"08b2d92ea8bf0788f884c71dc23a127539356873","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.2c1a4913.0.tgz","fileCount":80,"unpackedSize":923273,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJec/m6CRA9TVsSAnZWagAAF30P/RJUlq0ha0Um620XgZzG\n8E9w/KQGevj+aBDPw70WFJVq/zEWairrGzZ5DO1X2LNoIy3+Cl0e/M7EQop7\nmzEyveH4QfKx/FUeY0/TudVNxdyh9Kjz3wan12q/d2yZUjSJ6aJeqnwsVnoX\nLbiFF5nlKLKnQ7EN0BKoyw48HQSVI3Z7poDiZVHXzLGp0xBOXJcBZ9cUz7op\niHLtIjjJZBg3InrtuIeQZ5NOOLXoiNgtubOI0ICNe6r7VxUOHFrZ2R+3fRyz\n2SNVf8qqxVYIdg4TZV11/vtm+JHiks5wLJIh1Sk7Gd7riT5oIj37utsMk0mG\nB/HgbaE6hZGsQfyrGwOCwd40BKKfMjKBL8bH3bFM9P0JAzKqpSR1hJOaFdfa\n+oRta260KTWBywWKrZ5ST7H5iq25U9hH8qcLP9tseKilBrms0aRxMH9WvkwA\nBynDE5BO2yVYGOIrmYAgKA3LPnaukFX/JDCYwCmKfHfPda04Uts+xqDcNKbW\n9RIckAP4kMoU0P1OeXVfQKVADFCcomg4bMVz+8zknG8whgzxuS5986+dfvQk\nfLv3v5TR6qNP0IXXjq3RD3w2Fh/2IH/GDsAkWN4ar3Bk/WifFZxrqEUOdgzC\nLWE1IXRJTy6Rk1RXvziD3rZdbJ9XMCrejQ2molOOfLNn2Dqk37cJGdL+gnZY\n1HL7\r\n=V3df\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkGZqtxKgk/zsTQoG7OJNxYgNn90aNPUdXI6A8yF+7GgIgBRkiBC9blZiYat+13nYVPy06HEwUuJrnJMNwwiCNLSY="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.2c1a4913.0_1584658873973_0.48221779636340356"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.3a6e481a.0":{"name":"@material/mwc-list","version":"0.15.0-canary.3a6e481a.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.cafe18860.0","@material/list":"=6.0.0-canary.cafe18860.0","@material/mwc-base":"0.15.0-canary.3a6e481a.0","@material/mwc-checkbox":"0.15.0-canary.3a6e481a.0","@material/mwc-radio":"0.15.0-canary.3a6e481a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"0d89a3406dea7d2d2540aaeb339072cc01d18e2a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0d89a3406dea7d2d2540aaeb339072cc01d18e2a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.3a6e481a.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-B48/Wv4LPlX40AY6GYL7JaTQKw0muSbT2s4UQvs2lwYNd2jKoV0ChXSOKCW8OHvFGD21OktwCHMidBX3d0LpKg==","shasum":"11efe1fffad0b4d672d73ba6fc8a84603b60d2cf","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.3a6e481a.0.tgz","fileCount":80,"unpackedSize":924485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedQfPCRA9TVsSAnZWagAAn+8P/i8MKcnjjPpIB7Sb8Va0\nXe/Muia76y+xRhSrMROpSMvbSiQnpm4reVUxazdYQ3LVWVAHfyzEn2uWUArr\nXItgT3rVoUnPZKSkpY8fVn2GUXgyVcuh917chrt4IXy9PjvQWX25FQb5gAbj\n0HAjDV6BfqFTFnR8+lAu0jQKqaFkHFuugoE2inkg2UAuYiZWxzLVAZfHqfvH\nqjFVfvtPIvIpp/TRXwmrpX990w0z/b8DhnkodL9pv97Gb+Xm3sopQLpiPUda\nnwtpbzIgyxk+NCfszdyjpfHxJiW6kfYowU8F7WKbmjXCzJwY5se62yA0DkKd\nHB5xAf8x8I1aGwrI1F00oIFw6z1Qe452YRszaGkcHsJwaUuqN0vvbsafPM98\n94kuQxHeatdWa8PsHdWTu4LsEXOxksJuD9k6zYwpIw9Jn3bPsQ34ce/TalOm\nJXReDdmg+cIT/a4W7K2O4a5fW7QhBUjCu2xQ/I31eRr8rOLJYioNcxT0ukn/\nFvRXYcSGsw0BgL1qMyNygvhOHVSzlTsY6OryxZQJOJ7WAhAcNDf7RwEpoBW7\nTNJJ7A6zWOgJMz+K7fzu3Sw4ODWdDrYpHCaiOMSAFdgGhJNk9a7i7D4CWRDl\nnJ6CXnL4wJlRc5+rEegH4QcWPYM1B4s0cUBWbhMqUcYPl6ysu6UOBSdJzP6A\nPdhn\r\n=lTjn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPFIm6RQIhoNkGz7VEpuduK3f5pF3aeb8o+gGybiFrswIgXUWGEAbvBIs9ORwqaVAHby8lndWqA9LrdbYjlYn0DII="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.3a6e481a.0_1584728014811_0.46042822369154535"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.603d6eb3.0":{"name":"@material/mwc-list","version":"0.15.0-canary.603d6eb3.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.35a32aaea.0","@material/list":"=6.0.0-canary.35a32aaea.0","@material/mwc-base":"0.15.0-canary.603d6eb3.0","@material/mwc-checkbox":"0.15.0-canary.603d6eb3.0","@material/mwc-radio":"0.15.0-canary.603d6eb3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"c12dabbae50536d5adf2b5a785d4a5009e53208f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c12dabbae50536d5adf2b5a785d4a5009e53208f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.603d6eb3.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-MiEkcu3DNVbWKWVM/ozO9tbNcnUPtknh2gkVL545NCg5Zo51BvsnHPvti4XY+o720aXNwj7dwpV7LHn4nDcJsw==","shasum":"46a6f0413ca46fce04b87b4ab4766b04da872e4c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.603d6eb3.0.tgz","fileCount":80,"unpackedSize":924485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJedTdPCRA9TVsSAnZWagAA55gP/2P3rtP83qmBz4Y7zqht\n0JyDlAHlYWj4Ov3D3g/6pfPe7DLiq7kZdDMcBZd05aMsgYE3chIJBZRmkq35\nOknO3N/jYoZ/uL8I0Wpvivqq+PhMm6qpmcx9A0ka6UZ23vl9/amLOOBFIVYX\nBf2F4rlKVECroh3otCWOFA0/ut7ERh6/OSwe2QenThPc/7kMTCJCIhD7qj7k\niNCh9+Or0sbxaTxa7wzIki5ViPke7VWyN4QuNDw0xsSxMM6vixw/vN1T1muA\nU0+xIEvPVnXSJ7mq/pkcNR/JTmzjlDXmhN8BDitbwz1ob2biBdAuiMuYWUwI\npQWE2svPtDhr4KxGc48A+UFTqYVKvEBI70WH6KdKuyvBQmuVgoXChh20SqmI\nfVnYnsQbt4+ojRuRKYEphKhxFOBg4I1yDGUtV29AdwGwxeoUePuERUqcwlUv\ni8QuwITcrErk+LpzXoR6IsA+N7caT2EEyHjXXlgmCD9w5x5hJ70cSIWZ2TLW\n9PPoqBi1s9XFEIDRdIsj/f26U4e7sKG2Cn2spw2Zi7EJ73nFStmrR4cqXk/v\nHXy9UFKL31JiiN0GJD9QqjxAHMUPy7VGPpGEiDcpYaiHgVhBJNBQP4F5XPyf\ngiv0G/BI8iUxkYhaorVUUpz+6iUh2/Xr8o4T0QCQ0y2t122fGnzJIOS36DAA\nFohG\r\n=acsU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDb2Mq09E+ulsb1u0eIch46zL5Dkt3txfzENwk8RtAEuAIhALoxjQoi2g8GcdIObjwHvr46gdGANYrKkdR5r03dExsN"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.603d6eb3.0_1584740175008_0.5467894608958142"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.05c6a93c.0":{"name":"@material/mwc-list","version":"0.15.0-canary.05c6a93c.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.35a32aaea.0","@material/list":"=6.0.0-canary.35a32aaea.0","@material/mwc-base":"0.15.0-canary.05c6a93c.0","@material/mwc-checkbox":"0.15.0-canary.05c6a93c.0","@material/mwc-radio":"0.15.0-canary.05c6a93c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"62ce85b6b0e7c20ae9938ba7b42af970a40f1f00","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/62ce85b6b0e7c20ae9938ba7b42af970a40f1f00/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.05c6a93c.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-b3e2ZcFHxHXtQSPS7iYEWyi/TlZq4ThBCEwVNX+Khi1yUscQxzjbNmhwTBvvb6hr+2Ev+PWBD778UIufge6DCw==","shasum":"482e8e19718cd63a4b1a903cf7fbfaf4316982e8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.05c6a93c.0.tgz","fileCount":80,"unpackedSize":925421,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeeOWiCRA9TVsSAnZWagAA6pUP/0zDXb+3Yo5KLWH1RREP\nd06GS9HqQdT2Icjj/oaOdXQEqiZpBfdUthk+rzUisfE3J0Qra76B+RcyxFgG\nFnvzmYeUpyCvBXxbn5SFO9ZXVgAFisG35UpLIOHPWaU98zmasWW2K7TGBfZ9\nshE8ZkABAkcGHYzk5nAPXJsOv940336hABgUw2arUM3x19kerTF6Qjh3Sxgi\nYAF8oXsXMEnzd8uU/qRs1sZHGm99HriGJcf6+qk+Go7Pfx2wukGNudF5kgEO\nMrGS5lTBGbdTZ3OaAcvTF+MS1PXwnVDSw1/2o6MlWCl0IZifOS1BgATgyxjW\nr3cD4bGaht3m8xREtpOiqrhuRI196GukWMAuP3E022eHGoYECAz4HqQmE7Ix\nZYMKIkXE4MrgKDJ5iaLIoAx1FpleHQPnnLrR7TDIl77ivVqGooOIN25yTTEZ\nFpBOmi564ZetgPPR/9f1K6vYlXHv3D8+3AnIkttLHp4dMngCc9MzO2gQ1cGY\n4efBeMvwfbTsN17kPKIhm2ipzmkORLa3UQhcGunjRT1OnimOLyJkJ9qONcfJ\nnpirQeARmycIYuG99+/ouYkofZ/Uyw2niNBFvdFYKSZ5YLnvmZTS8Yx0qHiH\nx8+v2LpArGMZXxQB4WRQRTxJzj+X2fdlxyzlUmp6pJ2gxdb2CZGM+xfkm/P1\n4m6t\r\n=qMdT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQeqthtdRyhUEHH6ovpw5odqg+dhZDBgPUpMyb0Rl5xQIhAJA5vg0OvoSYSsaeqkYbTH3pU0XcA9jGKkGKchvRCTW0"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.05c6a93c.0_1584981410191_0.7012265430748534"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.14.1":{"name":"@material/mwc-list","version":"0.14.1","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.35a32aaea.0","@material/list":"=6.0.0-canary.35a32aaea.0","@material/mwc-base":"^0.14.1","@material/mwc-checkbox":"^0.14.1","@material/mwc-radio":"^0.14.1","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"b0de4ae05c3088b277f5c20ed01e4d684cc6b8b1","_id":"@material/mwc-list@0.14.1","_nodeVersion":"13.8.0","_npmVersion":"lerna/3.20.2/node@v13.8.0+x64 (darwin)","dist":{"integrity":"sha512-FEe0wlH69iJslkfLVjjEZSgV2yjYvIOGNvafmJjW4Wy0FsXoLV2qtUbvphcwdjPsdzG412CCSo4oeV+BBr0IWw==","shasum":"3f451a3f087c66391d62c5720fb5f044e2f0bd1b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.14.1.tgz","fileCount":80,"unpackedSize":925352,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeePiWCRA9TVsSAnZWagAAjVIP/A6/jqxZo2ze0ac7O0Ls\n5Acw39+qMuWZxuDauEn8WcghJHMd0VXOBxP08Zyaous6IzusjBst9s5ckAVB\n2v2rPamZSckuXSSXvs5ZmiHV5numljfz59WrCu59LVRlu160KMnapqrrLlCs\nXzWc+Zz6rETZZxqxjfRrnCJN3E3ekDVSQz3WWRBFL+ZweiaXMiuJe9Zv3tNC\nnFUigtoZrIDS3Kb2MTRfUb7eDveLVq5ueO8J2isNSfIMHIcg0Dp6wgUv+T/O\ndctPeirtIeLg3OyPrxahtE2JAcBgI2fmOMbyLnxiurdG1f8C4T1vlExCgGYr\nkDGRWzpUbCrflRMIM8+8k6Ewj7FPhuIjzNn60gzmJffTHPDZgylZvxj5ES3z\nyJtc9XMcd4TkJ2x7Ylo88xrwjQsjqOc7vtJqPwLdbHo71fu6pkDPSDFSoen2\nll+a4Y7dRovmncCmgTKMpxh8ledCchFJwZWjW2/ugxoBezm0DPyd0J2twVEe\nE4ES6c6n9JyyfQx+TGQ1K/y6Qo1dZxCUeFpqOliYp9qn05f7qr3ErCfKBCK6\nsf3+rF8JQCFj/yTQ8ZPVt692ZqO1l4jLpSLGb1rTmXZTeLD7KT5jy7qCKoQq\nLysdgTWRDtMpSs9lkG2L9ZDpmoa6WZsgDM8zrPDwIuoKJvnercwgHFO4HcRY\nMWjW\r\n=MtV4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCIFwTvpch3uSNi7BkWSwIqZ4uEwO3BeX3toNxy4t5GlwIgDRPiwfxpBBK+lss1Stqohjnb+gE6E6KjXtoAAqbryaA="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.14.1_1584986261654_0.4411451336538741"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.4e6be3f4.0":{"name":"@material/mwc-list","version":"0.15.0-canary.4e6be3f4.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.35a32aaea.0","@material/list":"=6.0.0-canary.35a32aaea.0","@material/mwc-base":"0.15.0-canary.4e6be3f4.0","@material/mwc-checkbox":"0.15.0-canary.4e6be3f4.0","@material/mwc-radio":"0.15.0-canary.4e6be3f4.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"1512aaf308db7992eea7201d4af81bf1e616d5d8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1512aaf308db7992eea7201d4af81bf1e616d5d8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.4e6be3f4.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-bZmcIcsSFjUN8qlQI/wNVzT786pCBq3VtGOYq9pWx92eb/OPGO0pKU8QlIZJObibDKGFtDs6YdeCTBMA9yNWNQ==","shasum":"5139ebd8d126e19f1391896af507446ca5e07a96","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.4e6be3f4.0.tgz","fileCount":80,"unpackedSize":926681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeenSgCRA9TVsSAnZWagAAd5sQAJjjzTJ69wpXo7YZMUg2\ncyDBA3swUt8dNCws89eTEZ9bCMJoCQlh0kasBrrff+b+Qh6Bwh/iLrqkvTiS\nsU/12X4ju25q7FyW6guFeoSasUh3TW532JGxTedqiUzqkmezsXm5XJ0QhH+f\neLA3v1QyC6uUSKoEyNOg2eLr6He0qtHrP8ONgjgF25JIHt7hoDyKvbGSk4E6\nkzPz9tFOZWV5JT+ISy1M/iowhqqaGGsG07C5pOoNiBgOnp7Vyg67/rY59DkD\nUUeTQx9b+HGEBRsRgdxwGivUZd1xQPPDZyEBxb7s0/uw3U7jge1m3hxFw6tw\ndnv4rnlIUsl7ivn8qKswmRcSpxYqYyIsC3g31CbrvvuFHsVb/anQvkmTHqEL\nFFZZacK8s0/ODFjDkPvbyV2xZ1yn5VPqbIDV0qk7m3ou4fy+cBvJY39DK6kj\njJ7w5B8k7DqQF8BWVcv27SnZxzDN4VQ6Lju4NQ5iBmRt59Q2Zh60V74fGQzb\nTNHeGSAm/oEvVts93o2Ht5ng4UT5CuTECUSf9z5Etb5KzLtiGpDCgTjo3fA9\n0OvgXv1E1aXtNreP2Et3dRlZQ6QTJ9uTo73hUn4zgv5VaSESoJRmXOqfSGr+\nTqkjiR6AzEh0XcZVA5V6dxwJSUmYPkIDDBr7spktEKCKYWze0U3eGqXt0IdR\nPr37\r\n=Yoa1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDTO2jEACrewCP8pcNJMrjQxigxaUbNm9wLzUh1TxKyxgIgZvCPZBL3Mu2n2cld/tRehBTb3Vq+N5mWv4q9WEcPhvk="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.4e6be3f4.0_1585083552585_0.18635618674950893"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.c29a683d.0":{"name":"@material/mwc-list","version":"0.15.0-canary.c29a683d.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.8707953b6.0","@material/list":"=6.0.0-canary.8707953b6.0","@material/mwc-base":"0.15.0-canary.c29a683d.0","@material/mwc-checkbox":"0.15.0-canary.c29a683d.0","@material/mwc-radio":"0.15.0-canary.c29a683d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"8425a605fcff9f0247ba649d1c8b16a70fe79720","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8425a605fcff9f0247ba649d1c8b16a70fe79720/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.c29a683d.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-/oFHBc+spF7Vn16YDEoZAuhknRF3jWkmL9PbbZzdJmQSJYR4d1TIj3ILprPW5a2Vx8gOj1cpF82WZgaCfknJgw==","shasum":"ccd63715cb0917a38daafaadd3c5fbfb92fc06da","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.c29a683d.0.tgz","fileCount":80,"unpackedSize":926681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeenjJCRA9TVsSAnZWagAAlPoP/iMb2V7QdYYWNjUW5jcz\nwZba7u71+vFRKu+Oki7LKJBq+g7Gehm66fRTjqrvBkn/8vgilVEBnl2VBFJu\nxK7VsTzZXB8t2wgScBLMROP5Jf8fFlKRMXCjrp39zw5z01oXGvoH1jCOog1a\nJwj5gIQiqtEWwiMpN98d0Iqim/wq3A5leBrR3EOVEtf9L3EdLPiEUwMzuzM8\nYKXAMObINkAhmoLVRDS0X4OJbNg0S2CDBoxkRtbt8JBowFwStWLIxsi66yOB\n5ymCjgLrsObNQTFb/qbCyEBZX6T0kiYG6a7T8EM0xBxGtUYdPD5I5/WnL1ol\nSGPkiEKl6RCHiIQJT7XWP1J14soQo9Jgq5mc4LwyMTgr7B+MTwIfaUO3v3ue\nt4PBN51heGdZnK3wyPN9f7LbgTvb/5img3pYahpfdginVvNSpTiyOxQHK+GA\nQOD2SvcFJARAHTOtYpPdqaf7dQxXKTsIyobEZrsZ9A8yUIU49QO1lM0vFppA\nch96sgGh/FWCrLo/XEHsDp6IcbYtDLcSiAdyilxlJ37ekcxm2J3nIT2eYiS4\n5T68NDHmbkkZ1rD3ca9efMQAU/KCYWnC2gCTg2K3INmXt37dqf0zfQisCcuT\nn4kg+ZgwnCUGIhJBuKD5nywhdY6ac6TiafziDrjtH/KzPnDTsz3sb6DahVAP\nk4hB\r\n=DnTs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICdAvMHIgp+mrHbA6ieixzplzV4uAkJYNtaARtrL2CzdAiAgDj9LYX73MjGy/pwgwmuxM14bLaBjMp2/Ul3K4C7bRQ=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.c29a683d.0_1585084617287_0.42165292780423824"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.fca3dd9d.0":{"name":"@material/mwc-list","version":"0.15.0-canary.fca3dd9d.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.8707953b6.0","@material/list":"=6.0.0-canary.8707953b6.0","@material/mwc-base":"0.15.0-canary.fca3dd9d.0","@material/mwc-checkbox":"0.15.0-canary.fca3dd9d.0","@material/mwc-radio":"0.15.0-canary.fca3dd9d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"3eb322e4775d836b8959bdd2dfe63f09dd0e0fee","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3eb322e4775d836b8959bdd2dfe63f09dd0e0fee/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.fca3dd9d.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-YhDXBgAP7fZFTiqHS9nqvPSOHH5DhGy3tX+T5tW/B6DX1Mmr48oWo3sMQ/qGHvkdWQUz+MrYFicwzSWo8IAXZA==","shasum":"20cfc345a51ce3b13cba209a44400c6b255e21e7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.fca3dd9d.0.tgz","fileCount":80,"unpackedSize":926681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeepshCRA9TVsSAnZWagAAeIAP/RVkLRzvl7xBR/gk7zlK\nBVbw7p24aE5k0OBKwtkDO1fg6djlBBOGHcTYPj10Fm3/BhNLwqaK1P7HWmml\nOQbDS7le4q50L7cBoEGe7cjrtBDc4XX91SauHdrsDQXPup8xAZK+Yd+o6Kn8\nif1v+4VOq9gGcWTNVXDfPN9LOl21r5cQdMzJHadOEHj/SA3WExUv2m6ROAWs\nNsf5Buyc5Hu4AbNsDDVDLPqEi914Dhn5NDP2Etu9hC4qZvqCwcglJdxhdI49\ni9L3zBnUcanqUHEBOuXegn4SzciFw0YUP+FYyjAhijR6ks3y4hNzjAVggmFH\n+kujgXIvqGonBoJMx+vlnMUvgWvwjjK+yoJhwGC5dzjQmVCSos0PvPi8fahK\nZOORCONxkDVzYHCiB4piZ+LS0n6i6ZRAW9cHv+sx/0rezlcCiy+fyDdZAID0\nFGv1/v9pLq0sJp22KOFEr2mkz0bjQVEDjQJEpOQimHqWPqrbI/v9NSptjdZo\nPYfoCMZhy1i1KknGsfVs9c6qubG+BNmjsB2hfpeAXwUqCL+GcG3kGV0uVBrr\nZcq3O4OWa5ZBv5KDjmBpxrIuYM9CXfj8oIJD2NLns/vNN4Ow8JldUDOAwELJ\nxw4r+IaM9oQw+rR0wu4WlvL1aIuwi04Rpnks9TVd6zpb6cop1qUhayMvcnax\nh261\r\n=xQvU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwz3ASQScdfSkrUzn6qt161rcmoGusNVqprpOOLFmx8AiEA0KACmMWPJX9AQ1o8GhQrWw6HPS4m61IoREms7HoJN8U="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.fca3dd9d.0_1585093408823_0.761306058119769"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.1e73da49.0":{"name":"@material/mwc-list","version":"0.15.0-canary.1e73da49.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.10af6cf39.0","@material/list":"=6.0.0-canary.10af6cf39.0","@material/mwc-base":"0.15.0-canary.1e73da49.0","@material/mwc-checkbox":"0.15.0-canary.1e73da49.0","@material/mwc-radio":"0.15.0-canary.1e73da49.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"cbf63b814d242690910ae4946b6144120c317eb0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cbf63b814d242690910ae4946b6144120c317eb0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.1e73da49.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-Ie3e0KvN62/okpzPxyEBtI/h3NHFzRnay1Z6zEsKyc5TEqmUMF8jSKV6SSyQvbkoMisHYxlLZAMtp9HUAju3eA==","shasum":"2158bf924f16e76cf9bb19b594a1ad68e5e1e3d1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.1e73da49.0.tgz","fileCount":80,"unpackedSize":926681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJee81sCRA9TVsSAnZWagAAJ7gQAIsv+RALp1/wklEmUM+J\nY9pp1hGCTruGzzJEdBINDXHgb7DxjUIbpTcJ3Hg611y+/UgJIrihki/QHZMJ\ngdy/TCHLfZlMD5MPIvybT4dv8YWwjqLaoxihVgoe4McIgeiDmqpbdGpQVW/g\nv0bdEYXPG6sU/emJdIbXp15MJvMwHtIcPh0Odu2hR62xpewz9TDPchICCW03\nLxNqM3hWeCWuTupmub+NuSEvhFHiV/06Bb3jUIn3EXGPIBzvIkdj80kY07C5\nb/J9m0R7K3KjwLEjX1gzO7qTjGBUUA0awwX+IpaMm4nrxnpjv4CiNbgGdu7Y\npUwBrSiHgBDZde9FfxIFgcY64zaHAXqwM12z0/+zTxwJHHaaPFKwL2eYqCRq\n92VuqvHupYAMj5iRfyEatrrzsvHzteG2vVdWzDYf250sEGJJczpIBHFO1ACA\n2fMV1VztcDSi1HZb/uMt6MMSbMBfz3Phcapo862o8oZOV9zquWcyHEDbWbmX\nPu0RJaSPfpNeUw7VN6tSF+mMh2YSpKTo2ykDEdNil0I8yim9Rj+3IXf976+y\nNSW93lq5XUGKVsG7eaqC0xTZJSb0s4sIANlMcMMlWs3+IopqMGNfyw+qrMXs\nZTTeIpdek48ytdGVxBPWF3UWJ1P7xYxy72O8bQBL79dUuhQAaYYWZwUMOfHQ\nu60O\r\n=nu+F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE2l0UWIOX6cDwufKNksHBayz7t8hDlt8qz7J46Zl+4BAiAiXW4z7UAsgNk1ShJlm8fdi9vjESsZjtWTdSAodB1nHw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.1e73da49.0_1585171820128_0.2839496902627876"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.bb6dfc5a.0":{"name":"@material/mwc-list","version":"0.15.0-canary.bb6dfc5a.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.10af6cf39.0","@material/list":"=6.0.0-canary.10af6cf39.0","@material/mwc-base":"0.15.0-canary.bb6dfc5a.0","@material/mwc-checkbox":"0.15.0-canary.bb6dfc5a.0","@material/mwc-radio":"0.15.0-canary.bb6dfc5a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb2656148ba3ea8e2b2b5053396cd8d9ae8e52f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.bb6dfc5a.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-lXvIDrEv5HgUkP9Lc2b4zvmBN3xL6RujWwu98XPNp1NroSkYL4Es11QF/mAJIhNcpLt8xzAkjOvvIlIYxkGTDA==","shasum":"cc5a37098187fa619d82da0d850b83de2ef4eff1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.bb6dfc5a.0.tgz","fileCount":80,"unpackedSize":926681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefVWPCRA9TVsSAnZWagAAb0QP+waGImuCjFcw5RMuhsox\n8QU8lDNfm8BuY8b+fstY/e1269g0EHKLaDHylCjSTU2lY1q4sIP2cdkIc8z6\n1NasieKaZF9zS8T6d71aMZjKZhJcg5TiO3jh1qsDSXFD7OKwxnhZZnDJcbws\nuCbtR3TijJhM2SoiUnOUXKPvaEaUfY+TqgCaytEdEmgVWvlGwa6mnL0PzEsj\nKQmvP/vKKKoUMl2kk77/IUMUT4YnScTRlBPBWG4PK8CNFow6l1zJ8Af3ZLV2\nGHqspd9Fwd6EV5X6pFO0EYqR367bFFvJx1Zja7tivnNd81hmynxaK3EZZsaL\nTjw+ikhDwFgV79FSywVWXGAJwjbHEMvrf0jXiNeXXqryj/x8pqIppUYdM2Gm\nA5wkmDJN3oTDc63tmrZwJd44bP+++cAHl+aMuKLts0nO+XhG8jaOZ57kxKDY\nRzMV3CFGTdzS2YH02gu9zxSjcFz/bI9cr2ND1IZjOera/F34y+k2HDBtDdm3\nYP4n5ptehHRRiBmIchTEAXezzMRO7N89CCKrF0esq5Bkuc+Qc0BpmdO6P5gC\ninRFc3w4/zJn5f1yZkgRK1YmsNGWV5Xhro/nZh/WwxcWu7oyKTCjm5wL0zMz\nyykUmpyBHhSt7PLOjUK1wzUZaxEeoRSt3x1Jqa1S0s/QximoAosRb7U1dPp/\nyTa+\r\n=G2H7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICsVwQn5O46Yr781P3fQk/qv/+rl3Kn8IxOLJMAgMUEBAiEAqk1LxrGYESB5qhBXi8+C2DV07GjDvBkytoaauQnnnWo="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.bb6dfc5a.0_1585272206724_0.4835302120417393"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.1884603d.0":{"name":"@material/mwc-list","version":"0.15.0-canary.1884603d.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.10af6cf39.0","@material/list":"=6.0.0-canary.10af6cf39.0","@material/mwc-base":"0.15.0-canary.1884603d.0","@material/mwc-checkbox":"0.15.0-canary.1884603d.0","@material/mwc-radio":"0.15.0-canary.1884603d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"9a072ce4f7812e5120dbc51ed124d9669e1f7be5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9a072ce4f7812e5120dbc51ed124d9669e1f7be5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.1884603d.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-orN34GKkJc367XDWsrFurWjgToCBY5qbqGzSze/Be4xl2s6kk/NgnGAjt9CgQjZyi9arlPrbfKecuwlkGKbLkA==","shasum":"25f1be4f6e9e46f1da45555371b27651549f8377","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.1884603d.0.tgz","fileCount":80,"unpackedSize":926681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeflpICRA9TVsSAnZWagAAfikP/2T0cQ3xEHub7p71HwNM\nG40/bFtD0IEmERWUuBP/xwyjBQ9gFpLmWZ42905D6lf54q9evvc3KJ8CnpCP\n04HRswm88Yvf4/tvKHb//zZJVFh66+5vhYrzE/OB7oZm3ykNxF9LhcyXSowK\n+JJqTInKafeT9tlQmetDnUFbkxALRhJe86khYB/9hIBFPkmZXB9eGU1D3LEW\nXQimCNFM0lJKBlHmcF4KGon+o/fBRfm/siPCQ7TPPzExSstSSm5HbNyAkAPm\nquuiPhgi+soUJDVKAkx65GVjQLKjxKCXudOMJC/0G70/0ZqFtqss73yEs7Ky\n5K8/TVo/dor+5+YW8572HRNms4gs7o+3xbhX2UufZHUOfAGbm6nhevynu4YD\nwSW42OOzgDm+I7WJ53GwmrhA/WqO2weM2DCd0oSTBhMr/VzFjvNYsZq/8Tzh\nzY2mPaPxbjDUa9RHtUXw0OasxKXAjNGKcK8G9yiz5BcBlL7LTN2vc6o6rRX+\nMpVrxkdkoBiDBD8PbKbxCd6Hq3ZpeK3CHAlNuxojWSeTTcdubKJD8a10H/MV\n7w+0UFlUDHRWh970IR1Jr4PGqK6Yfr0fE0k92CD7fbuCvPTaczHpPaVRi8MY\nhCos3rW76oP22M9LFeLCvQSpuRT0CqdVZfaZLzzUi4cvULhN1nzpDNYHE/Xi\nPy5J\r\n=hH+0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEOWF7y3gvi76/Wh7wbde4VMI4bPhCJp4O/4YHIWRxccAiAo7ixgRTNcOWiIHOWehCA6VF+ef3Wlf49FCMxCbHFJgA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.1884603d.0_1585338952196_0.7022782361349142"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.aff73cab.0":{"name":"@material/mwc-list","version":"0.15.0-canary.aff73cab.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.d6315efe2.0","@material/list":"=6.0.0-canary.d6315efe2.0","@material/mwc-base":"0.15.0-canary.aff73cab.0","@material/mwc-checkbox":"0.15.0-canary.aff73cab.0","@material/mwc-radio":"0.15.0-canary.aff73cab.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"40f9b297ee5f13af191b6bf450012454426c44b0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/40f9b297ee5f13af191b6bf450012454426c44b0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.aff73cab.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-EAG+WRXhc4q2fSwK6bfQt8YetR46KDkMnaEsnrKgyR4CrH/cOVwa4cwTojjzlieL30v+x9AsjFn0SKIUdXoKtg==","shasum":"629ac5b8e74e32d538ebc4db00113120f7ec126e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.aff73cab.0.tgz","fileCount":80,"unpackedSize":926681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJefmy9CRA9TVsSAnZWagAAyWwP/RMIHWePSpN0iKT2JM8d\nQQ/xHqebaKcYSrhzV4hckgIknC2YcLPccSQ7nMwl+swUf6irQ3QjXPq40ddr\nLUvEgI8liNu+OBcOu98vLOmO0v7a/dxllMaLgLSRwATjiO5VrrzhQZ6WqOwu\nb0USfYR3FVOfLQ3kJ/r4SRN+K0AnE+IbWLg2hqrYqwQ1RXZPD7milSPchGj6\nIMv0hKf7otruNbaib3rnesteKjuFAIOieHcBY9qMw+7jLbiNTzJ1/sCGaUGt\nZmaEN3+yt+1ACbgoBFLTO9AJm7mO3Xnyjfbfh7yij4lgyctE4SOOywtNNHh/\n0YaXRMu7sZ9xi76KPx5QWBuKotr1FqZOmK1C6sop4NGJkK2FcnLj6RBOHxKu\n1DRs9OUvx2SobA7Hm3DhAptAL4p3IYwnFOgJl1PyXrY/dwEXgHqGHlenvMbO\nAxE86+3WqLsyIJNSKxu8Gn4AXN9Tjd4JKc2We4uNYqxshZqYEFNwLQF5Rc+v\njuABPT2QfHNWApjtGIS/QyxagebDbh/V5/MtJPyVetbu/9gve1GV64EQ1+Gm\nhChUSqg7IQSRABFbeHwZoORADylvZNsSyrFHM2r3j9MQ15lv/jTiqHp5MQi9\nNB65vYkkAYyLYkx7HbJFZNA0VBK4spziRIKIsyWIec2qNgVE9qQe1WDFB/W+\nPI4T\r\n=0cDR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCTySljUubkH7xNhrBmnXFXPqLasQ23Uld37ODgt75TegIgVtANibvXU95K0zeXega7KkD8dQBS/SMqM2JHWH34+h0="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.aff73cab.0_1585343677469_0.504794578051246"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.63168f61.0":{"name":"@material/mwc-list","version":"0.15.0-canary.63168f61.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.a3016368d.0","@material/list":"=6.0.0-canary.a3016368d.0","@material/mwc-base":"0.15.0-canary.63168f61.0","@material/mwc-checkbox":"0.15.0-canary.63168f61.0","@material/mwc-radio":"0.15.0-canary.63168f61.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"84107987770a82843942246baa8226b37f269240","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/84107987770a82843942246baa8226b37f269240/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.63168f61.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-oEfZZUPPKrYSb3s42VusqBkQIW0O6coSZJZ+clK8Q05Hbwsvk34uTdt+7X4ynDTpPkKylVo03RkBz1LOP2vBrw==","shasum":"31959e542861eb2196c666356cd9fa72b8c1b7ed","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.63168f61.0.tgz","fileCount":80,"unpackedSize":926681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeg4gfCRA9TVsSAnZWagAA60sP/2EhO7CkjzUSD9/1FlOO\nUCptGn8Ow5/Z5etnvzUDrfeH8kWdnc46BcOALDRkk+h7AxlHfBg7YRnkY4/x\noqkRdgumZRAOVAfsGFxqppOyXaOSUQPTPauYMRIFJsco6/WxK/rvu3Kmy4lg\n/uMCcrzrGBTXCKfgUkP3mfD0XGxpLPTUsLSoCFqQqnqxoc/ZtbHIHYKg5fvR\niiB3j5+SROAJuXSnl+I5E7fPLFsWmDSkzBF62LQYzwoS3IZuQO0eVef9WEI7\n1P+atrkujJbCjINppyWusrpDGVhUILMmhYKEBAita7DXTrbq4nAs3nvfLXD8\nFBC9QukKGHDYHokgf13TiV1I5Ygpr9JH88J/gne1XaBkH8rp7jIePoh++c2O\nMhpePd/K8qd9zy6aTc5ijmhB7L4xoG7TIW85wFAO/xKwyg1n6hxJRxeHOYWO\n6CV3rcK3aOpjwKmbS7bIzwza7zje5oRa9udplS4k7D4CJlQmPAiy+MG+szEz\nq5x6UtmrM5oGv9sQxwY3xnxDT1nNnCWy/lXahhQC4idr6mHk+Qe3RSExcC2n\nStN3QjK0FGpT5NUzG25PwpNGZcYxt7gNA2VBYCViqYf2vblKuYU0e7Ht5gYj\nJeGq3dJbGA2LIk0AaPrIqwaUEUd5n2SOkm9K7sWSnYTd4LfSh7lEVM8G9RRe\nteLB\r\n=pnsW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeYJGcDfJjWDaCMyie3t8XXPf+y7OzIIDY6v3N0NJG/wIgcQ4ABXPj+6FYJZeyMN6u/kZNeak3p0qRz2e62zbz0JI="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.63168f61.0_1585678367112_0.5277373401588192"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.9fb79b3e.0":{"name":"@material/mwc-list","version":"0.15.0-canary.9fb79b3e.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.4b45b6620.0","@material/list":"=6.0.0-canary.4b45b6620.0","@material/mwc-base":"0.15.0-canary.9fb79b3e.0","@material/mwc-checkbox":"0.15.0-canary.9fb79b3e.0","@material/mwc-radio":"0.15.0-canary.9fb79b3e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"6669949a31d7f92febd25f5d49eb40a5db4aa7f5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6669949a31d7f92febd25f5d49eb40a5db4aa7f5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.9fb79b3e.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-cI3RP4dkeJhLsGWWDJJ4yBlYaYvFZzDf40nb4fT0zU+YGR4qKoovbB3cKHVIAS8bjCcRz6aCFS6NZraYAshXjw==","shasum":"fa831688668a4534baad7fc6dfe9648dc2c9f3a3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.9fb79b3e.0.tgz","fileCount":80,"unpackedSize":926681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeg7QmCRA9TVsSAnZWagAAT4UP/3wT+6tMOD4CT36H6MVH\nALnF9DCr6XV10YrTtfbI4XtTw5zUb77VqrEzENun/mP/DBI0Fx57LPrJ8WQM\n2kyp/iUTwsjD8i+kIAmMJ6xp7XBlG+WkJmrSrf/kXlaebBrGWs7mUafnkAsN\nxzvLRpE9UBO+NQeC0bimbhH0CKDxOeGftk4CDABMiqOTS6o3cnC5nU8K1WSQ\nQ6ALtD40qlrPyxykG+IA5JmZr3N3yeHb7GG7+JYmzFqfJpCuG4yHaoHdv6WR\niqfCK+k5XX3H7wLBVsB+9WqyXUFa/Ji6m22OZe/6xYIbsgXWWw/O52STksev\n9YoWkVV2T8SwEh4oP8A/MwGtD01oCQmNLHma/9hFiuX/cLQZBnCvq342AQw8\ngJWCHrvNsP8Wy9kC/x/qDx2mb7qqOAMRcaaGMagDWGLyLlWC/92ElwPqzUSI\npW+RQ93FNwiFRM+0KqnFT81PBetdHTWmpR28tdAcYM44A8UEmXeZcOfrKaUz\nI2Q5ZiVBSVYIutXVNHdeU1z9MA01W9K/NLkVBLYnc/qQVgH7usvvzM0Qx4Ql\nGhvPaMo2o6iPZOgYCo4+e9FcD5kUXvwZVhXEJmFOYVqyFVQJVuZRzTsAhR38\nV3YDXa3MNEYPIfXbZLfHROHBFw8pY4RJIGQEI4Z21/f4DwGNK1UwqCdYvQfj\nYfVq\r\n=LrZf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFTHC0kK43ALDQQMe9j8iD1bTnKwgpw5f7XM5QygI8SXAiEA35ht8FnrDMuD/uvyiNaq0+0T6M0CM41L2l3y9feHd2M="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.9fb79b3e.0_1585689638011_0.8894666239179523"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.9bd3e9e2.0":{"name":"@material/mwc-list","version":"0.15.0-canary.9bd3e9e2.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.4b45b6620.0","@material/list":"=6.0.0-canary.4b45b6620.0","@material/mwc-base":"0.15.0-canary.9bd3e9e2.0","@material/mwc-checkbox":"0.15.0-canary.9bd3e9e2.0","@material/mwc-radio":"0.15.0-canary.9bd3e9e2.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"9b56904aedd36911e83576292843c11af1a00006","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9b56904aedd36911e83576292843c11af1a00006/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.9bd3e9e2.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-bAtjxqKbU1uTuntPlhk98a1eOJH7X0qig3wZ0RLa86/Cr5NuiwtIA2xbRXZK/h7+At5Pej5xsYvV8316T4p9uw==","shasum":"c23aa2992cd1181e0e2f78b437abb775b17337ec","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.9bd3e9e2.0.tgz","fileCount":80,"unpackedSize":926681,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeg91bCRA9TVsSAnZWagAAXu0P/RLQK776BsHAJi1mX3oF\n1vIxH34peQFa+mMJTQ+2MenwmTOHjPjFqhB8sGW74ReFNOsEA6Sam0QNG3O3\npx7W+FQKeOkRPKGxcKFBj45teiNApL8EkfHdb3K/O4xW30tkBjyQDNMXmf4L\nlcqeOC22fwEh+aakAD7PNmvd5cNKNGOLhxj1RTgm4owzUYE7AY8ggwFNxpd5\nJ6sG3eJTz3CklHUzu48y4IDWexM2+1icQNRknXNJikqoE/eXW9+QclM5Iqms\nA2BW7qQSlyYIpAXTLhkDhCI+aGXxY+doGgRC3odGNBhAahX6Sy+cd4crtOQo\n+W7NyjHLXQx9VESfYShCSfv197RBhDwmMTwjwHCpglrSRgWFIaicW3xkyDTj\nV+rVCdbpZaoo2zif9Q3e1QJzBQpNE94IYF6zAUOxXmNL/d6uYEE7WJVoQqKZ\n5Hlk4I1bvgCtAaZaS6VQQ+PZGP1X8GHcdqsUe40PY6Tg2+SG+/CtEtBqWcuL\nXXyQJIgLbqteemKs2z8p5TgHjLvOvVHFRy9fZ3P20E1B0xKiIqUpE2kIx0Nz\n9AGFqJjVMWu6NZVj/Aq6lzB12BxTMckiKJoj8z+G396K1EuotFkpnSakyjex\nimEhWWtz6xzEf7dnxTXxTWZFPToRURjqa5lQOAwMEgfyOeY39g3XsZ5pnRol\nsqHH\r\n=tNSd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwTo9rkWmB+5REVYOSZpir7dBeTZMLhPdJTWVd2YR0owIhAOaCEHHXExLuzCgxeZ9j78pKJ4ClYvu3/nDHv9kN8Oop"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.9bd3e9e2.0_1585700186498_0.09946702258458795"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.072084ab.0":{"name":"@material/mwc-list","version":"0.15.0-canary.072084ab.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.e84b9c8.0","@material/list":"=6.0.0-canary.e84b9c8.0","@material/mwc-base":"0.15.0-canary.072084ab.0","@material/mwc-checkbox":"0.15.0-canary.072084ab.0","@material/mwc-radio":"0.15.0-canary.072084ab.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"98a539f9970dea2ebc84f30f462c69e72dc0c4b1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98a539f9970dea2ebc84f30f462c69e72dc0c4b1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.072084ab.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-+P/qJyMe6zLP8FlZNjdwTwjYCzIroZcHEfrcEYZ6m4TLJ9AbLiISgGFyc7YdiboYyceudx6a9TIeNJW04IF9TQ==","shasum":"b0059b81935648046cb19c2ab44dc7ce87cce1c0","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.072084ab.0.tgz","fileCount":80,"unpackedSize":926677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJehOAPCRA9TVsSAnZWagAAkqkP/irBjyJlHjBSgUfqDf1u\nQUAcchUvu9KTaMaSR6QzOiWIBq9hcV6Smt3YuaVXw8lYDQhuEgMZ1pYql2fb\nQHAIxyYTHHAF1uunzfX+qZS7PQPM9FV7Z/ouv6UsonFdqf0AkBwqTu4HQx0m\nelLraWjEMlX4vIVsgcMLzj2eR6BFmW8Adp3AECOolF8Z2HnMU01VdwRdz7Wb\nLgDIVdAOEwpWbmfD0WbxYA2u1b2qn5IhkFp/fcuxVPIgXBCsyPkCAlcZNW0l\nYQ2AjnQxo9aeWo7kUKAz0TrfkN8jqh4NdMlO25zrQfSiyPi7fH6HDbZagrbW\nSDfUCgc+zlqW4Q8xpExzrcMnbBGcW18WvlwHIIZzULZ7nsEiZyH2dvQ3alTr\nAcYvOC3JVeOVnczPpZbVhDZZC43P0SiK/FVNb8q+ts3Ww508R2CIY+WU5jYq\n5yf99SuaMdDFSNXzDZYuSCJkjDmDd+XLKYX/SBs2rprwf3cWhTANCJgV79AY\ngm36vzQC9mtp1BYHbBfk3ysS5SLnU4cvJxPDaZH3w3sE2aKjYYZ5OJEFQ68X\nxMhzY2uHHRK4H+ynyqQJ2JM8Z7B3pssGQDc5JqrObP/Qk1CzmCU1aon8jWkd\ndlOhngO5TAKV4knOogmAtaJWsNb2pr+Nx69iEfE93hq5zZzqjUduY7lPXFSF\nvpoL\r\n=Hgef\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD05i9j+tALTop2Kv3ylLg6Rr1hssuF+mWFuSPdyV8e0AIgX0ZjhHrs3QX6pUd3Nf9Nj11eLFZpoG6amwJMGsUJdLQ="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.072084ab.0_1585766415124_0.17337238135044464"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.4dec04af.0":{"name":"@material/mwc-list","version":"0.15.0-canary.4dec04af.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.f1f8e60.0","@material/list":"=6.0.0-canary.f1f8e60.0","@material/mwc-base":"0.15.0-canary.4dec04af.0","@material/mwc-checkbox":"0.15.0-canary.4dec04af.0","@material/mwc-radio":"0.15.0-canary.4dec04af.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5d47dd9ed52c3dc1e1895467031d4a7a1df6cedd/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.4dec04af.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-OHzFTK08bVff3wRNeMg/pqYzJitoyax5Ksh3tooeBwxwWrw9EoyttPUee5riiFOQ/ftCp+pmGPMYM32cmf9EhA==","shasum":"4d51e2b8904ed873f24a5e8e9b8090185fffae7f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.4dec04af.0.tgz","fileCount":80,"unpackedSize":926677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeh5zRCRA9TVsSAnZWagAAMYcQAJS56blyQOmQ4QkyISkG\nEqkzm86siKreKKbPkffOFwNgK3/JybgjowxLMDwjPH0p3uKpoZzp7E87ptDX\ndJmDdKFcFmXfrhEF8yMPafybWawDIAhbOXIOEh2kqxUVUeFdPlQIU+P9JbIg\nWD1R/TnjdwhdyNhuJKpxRX3PA4QSG+GU1npVrME26JMIgzpLmomSfVbAn7wS\nkwUXVG0g+/7y4r0/rtko54buA3Bm9Jm8NaX4LGKdvSpYMleUxTrpL1krhtd5\ndueBSsjPQaHUP0dxpSrxKpVck4k+nqFtI6svukPCZ2dnHggGeCej1bJ+NRnl\nIctquypSzGZJVpEkgTSr4mAqlYagyH1gWD/LGWsXvWKdTRe+adqWXAXg2Q4i\nLCO8JriulYsgxAKLtP685ev1mYdTKLJgbVLyWYVrat8U1fFrGZ+kFm7wSX/C\nAJpM/1DJH9oumSQa1Q/y0GnHjduAzyEYfQBKXkdUW2r2lFE+65P4cWBA07wH\nPIQSmOol1FHC3eevVeSZU1bMbkBf7m2n9lQnwC1AwZAkrMOI7lMsS19G42OP\nLxR94HwFTqo/cyCNfmDV3E4JRk9CQNLgAjVwMtCf4OfmdaUZHoBplq9IJACK\nAD7RhpuMU7bHXvrWa6D8RwJoy/0xhoz0+aNVuy7L9FUUCzABA0E1Z6DGAbKV\nRGEy\r\n=LeSv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB4dHKNzeCxauWp/4vhsNxygHoYe0psO6nAIWNs14Gh/AiAA3MBFRSp3PEwtID30FypitU7qYDqAy73dgQ2SJ4LqLA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.4dec04af.0_1585945808727_0.15753618182282625"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.9b676354.0":{"name":"@material/mwc-list","version":"0.15.0-canary.9b676354.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.e84b9c8.0","@material/list":"=6.0.0-canary.e84b9c8.0","@material/mwc-base":"0.15.0-canary.9b676354.0","@material/mwc-checkbox":"0.15.0-canary.9b676354.0","@material/mwc-radio":"0.15.0-canary.9b676354.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"423f1ad2d234953804097bdb30484154440adc63","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/423f1ad2d234953804097bdb30484154440adc63/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.9b676354.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-vcL5SCd//nwVrgD5x1JlFmljjzHO4uzciONThHFnRgOP4VmQx72ifoqaddH8UcyHXcBQ1dGKbnUa+JHNi88epw==","shasum":"ca45a2de5a2fe16d5cee64d79982c7733f37202f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.9b676354.0.tgz","fileCount":80,"unpackedSize":926677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeh5zlCRA9TVsSAnZWagAAR8UP/2of/RrgUlWJlGL81wRw\nv99VqJQEF2P+pG3eSwf9L4RDNwVyIq62vLGndmf3odisiaol0GYgbHra7o42\nTuCY3DGv4oKAAgKHGqMhVEKmq2rQUYQNVUnJdiLAPAJ7HnsAtEzGsBxIDcAk\ni92SLKssAaJ4xLzXarESBpHBzs3S1fz3AxdxPd0gdlxyIVAobRudgui7d2D5\ncw/peIYSfEl8VbYkSB/xvXuh5VuHXWjgY40A5aPrHDY5hhqmliVG6z9h9z4c\nAROGUAvt4WUSduUP3nQQSq01kFiSy87SIHJbVyfMtyTZ0EbnAH2b/2hQU/Ci\n/E+cFF32FFIwsbiRiPH90UWpt7nfiP7B4/MIY7XjMvPl8xlJZyM6kRh9sWaD\nzxITndDXAdfo0+/c6sGr9h6cA36r3IA8fzJ3Cwnw8xYdSvMFSn0LH8ANENwa\nzvWLAemFrhy8TShcHqkMTbs0B7/FuivVhORIDOudN2pEBBRSe3Rue/VKcvrW\nTcegkN+3C8ua706+0M+8OGjMEXwkqEDOyAkqDBtKIddynUODil9wYGR8Nf2l\nSUAssMBtbe0k6U3x59AQfpZU09nMSekYRMC0KLnra7g2NRvtAYZAejCROhOT\nA2O0iziFm2ERuhxkXhOARQ/EiZiIitIxImAzacMhMGpqqieD19x+F3sEhzUQ\nQard\r\n=GooY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFZZTrwmwV5UQVVzec+o9dsna4aQYHkWSYGJ662QbyY5AiBwtrj+n978LQKlnyi4hkSKlirwXYhFwT5Xv03DKiwLow=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.9b676354.0_1585945828653_0.39045571533359036"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.6b946095.0":{"name":"@material/mwc-list","version":"0.15.0-canary.6b946095.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.f1f8e60.0","@material/list":"=6.0.0-canary.f1f8e60.0","@material/mwc-base":"0.15.0-canary.6b946095.0","@material/mwc-checkbox":"0.15.0-canary.6b946095.0","@material/mwc-radio":"0.15.0-canary.6b946095.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"1b65dfb6b4d3dea0ac5681487459f46352e399e2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b65dfb6b4d3dea0ac5681487459f46352e399e2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.6b946095.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-UL1Hwu5j52F0oTiiouK2wNn5/wFWjgaX+0URAUd6tDzvLL+TaaGwKn+VBb5cie17Dq/Z8XpqIws8+zgzXCo7rw==","shasum":"9333a275d0543c542ee281d9e868112113ad724f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.6b946095.0.tgz","fileCount":80,"unpackedSize":926615,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeh6mOCRA9TVsSAnZWagAAQWoP/2FU2Hr+W1zvw4HwbiZn\nc4FommQu6+MWcRiGYHDtBTQshi6kHkO7qgs563toWOBSQM/fU5G2nBLWVUz8\nEUu/bCr1kYV0qaUJ4qB9GFGdWFO0FNVDVnTQCwofrF9xkKSyrdVJS6hvkS19\nwTqH2OYviGvPwng214fq5PsaVupD+kJsVW3sMIz9LRZ/o/qSsuido/O8IRZC\nEwMCevWMJJeK/x342pvcvY+b99hLzG15cbKb+XYMiQvW+mhHaBbtUoPGKcDB\nOn5ozOljnDstPlv0sSZyjcWtjOFMV/LHtBrQceavMEFFU2jr5W5CYKLfFKcI\n2q/ONMBuj4rhzIIXrTFCocYdaZyfkp4UDpdHfOL2dMqDSbGX7rcpd+7qmuLc\n4zgELgyZAj754M2WfI2BEOa7FkanMVEACam5v/hrIWl1aaOzYbfZKvVBXdmP\nrR7Tl9F9kA7kXfpilazVCsJwg0lzrUVbpr/g6CXwCONdu6rYG/8YNwqbkVbi\nAftnYME/HspvIIQVXDA54ltIoKd+4BCP7GGVJoJwFiBdNt/ZPzQtjrumGygb\nKNP+4gf6uOFuQhXsQptBtS4+i6jdtUlXnnuqUgR5M+Pj3+QCIxtLd/VuCDoZ\nrL1DVdA9ak/0zpY9X24punaB8pnXA619hHrenN/ScIcSRXqfYjjlgYZEfZr7\nQWFD\r\n=6SL8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE6fnCXzAxit7aXICOWz/gokaBnqH/nrmRTwoZkMg14PAiEAk9c28wj6P0sDwyhd0jZFKE33CvBJdGGkifakiswuWKc="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.6b946095.0_1585949069676_0.3577183989628232"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.5ccbfaa2.0":{"name":"@material/mwc-list","version":"0.15.0-canary.5ccbfaa2.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.6a40ef217.0","@material/list":"=6.0.0-canary.6a40ef217.0","@material/mwc-base":"0.15.0-canary.5ccbfaa2.0","@material/mwc-checkbox":"0.15.0-canary.5ccbfaa2.0","@material/mwc-radio":"0.15.0-canary.5ccbfaa2.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b20d3f13f2b61c253e28c5f9e5adf15bfe26d88c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.5ccbfaa2.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-UMhQhvbRi0wJMVDKx+OVW+iaBsdNMirc/8NKWrNvlL9YJEcZc0xVJk9gMcvGOzqTYR7QRJni/H520zH8beEmfA==","shasum":"059a6aa9368ac7bf3bf21b7261420acaaa2f2d6f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.5ccbfaa2.0.tgz","fileCount":80,"unpackedSize":926619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeh6rdCRA9TVsSAnZWagAAvYwQAIOlzhw39xJ3EIRDSxE3\nRFlO1MRx8ZvynanmAzP6i+xGZwAtRgFFp+3vow8nQr8gykfsX1q6UHyAAf3L\nvYl8pFzG4cz1u/uX/MYqobkI+V8dmMTKvrirVrZTiwu3VPtnrt6REBCzRfT/\nfPSfOAKxy/t1Aho7/y7JmJUr8y2z+e/Ss1Tlei9h49D00MSpzb332JvZa0Hg\njaAX3EbfQJrNBP53Su4+5dN9+YuwOYD5KgPTiNTBTG6lriBk0zGHGqREfkCO\nGu11ujWhevlUGgH6ykebwLiKfnVAaVTLzMgi9ruu4/Lqq8UiTnBPIBCC4Xjh\nY+b5VG0NWYm4veWYoFA+fsPNiQHPrYUyAN4fOYbDI8gKo7he1ot/PTF0dmjA\nrJuyJ/k8Vx30dz3IVSm+GnpGTJqPMa0yhQwafuCNaCN0FKrLe2sYgWB+PSFd\nSyL3/aLxleDWweZQStbEv4Rw3cG+Z197apZPQgYqs1Xml5qMSCl2vJrdH1F9\nIvxuhT1Uev4XFOoolfqnQ3DHdbcbMHm6+9t8t6yQ8MBCR23SYhTQaaMbCGG+\n0dDvsSVHxpFC6HJSByym8OzcEW76zEB8AI/gPrcwpeHTsw4CSllltLVPh5zi\nnjjzrxTnaX5yy7WkZvvswSMrwCUC+o+jWR9lIVhLjX2lpT4OfDeLOUZPtvvi\nHlXq\r\n=mg8y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB6LRsvd1nti6L6uWjQLAUfmk1NsaT1HSUQ7637h8syyAiBYnSBHz9k8FtGl0QwbN2TPgoBLXR8QUqQg5BTiwx4zjA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.5ccbfaa2.0_1585949405253_0.9634555923620383"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.a0ab8772.0":{"name":"@material/mwc-list","version":"0.15.0-canary.a0ab8772.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.6a40ef217.0","@material/list":"=6.0.0-canary.6a40ef217.0","@material/mwc-base":"0.15.0-canary.a0ab8772.0","@material/mwc-checkbox":"0.15.0-canary.a0ab8772.0","@material/mwc-radio":"0.15.0-canary.a0ab8772.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a7db0e2fe222d87e1ee22c0515cbf02cad4b1cc0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.a0ab8772.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-gHM7yjiXLANnPHrUotwKiQXuDqjeCDG8ZH1eNHTsMRvF/xBNHCoOF77d2yvyWfE9ebNmRK7J0SJTD0yTJLPg/Q==","shasum":"c74ec714c07069268fc26c2f55cc5d4a75ae6e83","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.a0ab8772.0.tgz","fileCount":80,"unpackedSize":926619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejN3oCRA9TVsSAnZWagAA5y0P/1fZgVcpxk5fxaNMPuED\nNopB3QvUaw/8VJH61+FpGq8SxfC4OhySpD9TX65D7GyI1JoCdGidnna1Do1L\nQptP46WnOAn1qkGkPtnxR0W6d1jgrCuTgjP7rkPxYxpqVoL2UEayWp8jHlvy\nkKu8jx5MBJ8YUyORcTlYwPxyKq2yy2lpDNbo6AwT6OjqekQvRxivKf/fWvio\n3qHB2wt5WcvHXJ9RyEZoFOJiVqkVW9UjEjFpkGuC/z0apb8aFnJbqfvEtNTp\nHvdLvV45Py3zM3dKvHg6bc/QQFybzIdBLTKhXzcNT4wP5v5uUHjcQkwS9sLf\nYxxOmDpYkpbiGYll1tunAB85SeC8PC4M6U2//9pgO6LKjRlm8AHQR7QDKjrF\nPoh4WrroWujgfxbZDDSKIlnsAQptnKam/uyD/+klN0LJLtm+Lw0twDKfbPuy\n+jDm3xL3xKSJj4x5Cj2dmSj7iGYywk62yd7pNpFSGu7+W2p5h0V6SdufdU3/\nQ3jsR7BPIywJCipANNKWAHu5fe5ruW7IkI3cEFck3O1U0Ztgpsa5h3s7G9SU\neBKxkyYUyFWLoPo15iWqHpWXZQPxJeBUFjxJCCk1IBiEyCFsaQMAyEZXu3fA\nqXi2vpooYvxWNY7kJZguK525uQ+FAlD2G0TD38lTUOkaBF9Gk5NADkQtlg/b\ntize\r\n=EDfB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBPdMTrz1XE4CkLEVmBHB1gR9L9ePEMIBvkA5fCQ3IBmAiEA7Gaj+utAIGyCiFg/oQNdxNhzZLLiFKs86ajNG/EoL9o="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.a0ab8772.0_1586290151940_0.13300484510529564"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.8d352305.0":{"name":"@material/mwc-list","version":"0.15.0-canary.8d352305.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.6a40ef217.0","@material/list":"=6.0.0-canary.6a40ef217.0","@material/mwc-base":"0.15.0-canary.8d352305.0","@material/mwc-checkbox":"0.15.0-canary.8d352305.0","@material/mwc-radio":"0.15.0-canary.8d352305.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"d38e537751f3d38d903a5c7c03910a26cd301f20","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d38e537751f3d38d903a5c7c03910a26cd301f20/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.8d352305.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-lVp8otVMX1QBdsmDdHYtp+ZTSG4adY4SRnWkwUW3bellGrsiF1hHjBY6Y+jKzrNiAlgTpWlKrzixNFesQGo+EQ==","shasum":"9e87febbfe32f68f249b35f40c28e6c8f91c4b2c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.8d352305.0.tgz","fileCount":80,"unpackedSize":926619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejPPDCRA9TVsSAnZWagAAa4cP/R+30hIlF2n5mVPV3wv4\n1UDHX3qDzmNtG6WxpuQbx6RSuGLKh06YV3UN54uNf5lLSveKlEqQTXjaex/o\nzXrycldejA7NYmk1+JhGmey+zvogyMJFmGuqxTbUWgRX1kWbZe6RhgU0gjgx\nmlrIzUCyutwDqBds7jTIi00VBQt8CZZE/HFvcSuyMj+WNA0YyROrQvY0h/Ms\n0AkrDrj63DxjgvMPpDABB4yLoeB2aDOWihGhl+ZoRowN+pj4BV+4Vwv3oora\nQqFLPVTHVIwWY6EoBE/Bql1nmqWorOcBKmCM4b+LY8p0HeD1OfT2BICvlHIF\n0Hmv/GjNTme2DTv9SD8fGWfcuJILTbieoAPwglZAof36Nq9jFyzXOCAXGrep\n4MkRgiGx9d5efEcvWxGdCXXeYmVc91DZgnLTG9/vLF6zhTE5rkhtffWo1xOc\nUVg81W35i9pH3YYqNDvk73Nha5viSpypx80MoO45coP60bTQzxIIXArzIUDJ\n7R3tE+UFiT5TFUvxrhHDOGJBUUi60QMXHzr1hJrGiVd2y+dWtfwvG49dlO2E\nXcBYHOoX+eRpHWnXk9L6YsnsyHHfGpbXdT3bU0oeh619J+k8mz+/xTs5Asce\nzZrbm2Wcr0AgPl0Fjsp7wKPdmWnD2wXBc6zlp8f6V0x3pSbGqDEChYWfBd+F\nN8YV\r\n=6B+j\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH+r7L9lwPPRCVLj0I+dBpUomscGYZoawO0N7T2hH4o4AiAT32cCLYOTv8AI7OWyG3JoDtT67piZ0WC72WJ3yUCRNg=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.8d352305.0_1586295746843_0.9451044545775285"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.31eac79f.0":{"name":"@material/mwc-list","version":"0.15.0-canary.31eac79f.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.6a40ef217.0","@material/list":"=6.0.0-canary.6a40ef217.0","@material/mwc-base":"0.15.0-canary.31eac79f.0","@material/mwc-checkbox":"0.15.0-canary.31eac79f.0","@material/mwc-radio":"0.15.0-canary.31eac79f.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"fc47d0412882f860dc7dc010657ade07c9a0215b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fc47d0412882f860dc7dc010657ade07c9a0215b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.31eac79f.0","_nodeVersion":"10.19.0","_npmVersion":"lerna/3.20.2/node@v10.19.0+x64 (linux)","dist":{"integrity":"sha512-TWvAYYz4E2BXaiLvYZ0xH8h5PxWQzV4xQA2diGC9JS2ApRi9pkDZmDIcuY1lXOsBu/nxMhf5O8MxRKD2pztOyg==","shasum":"c444e245b79d092d6144ab552ae3d9ac54f85852","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.31eac79f.0.tgz","fileCount":80,"unpackedSize":926619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejPdZCRA9TVsSAnZWagAAV0oP/0VGyNkBcubygRLasp/R\nE/hUiBYekvckaE8KewN8haHRccM5isllygaylp6+BIxszwz9UcDCD40jkisq\nMrzkuMSF2KudpLYHIQABvWuACzmGDeBljahZX1+JeQkRf1NJr/C8PxP5attq\np7Wg6H0hndyiAoMusT/ZOJoI+yrV03tc4C5MULhX5yMWjy9nXieVrs4I2y5G\nx/nzG7s+sFEnXViroIVHxpbH2hIa+Y2HIMIkDavA8PzCfLLNV9W3dZk5cqpb\njOAp9qCjZiOCD+DywxnBAgcuHOQ9kHxQEnEZKiGz1/k7NLBXj5mkoIhi7cXd\nSHaa2p+CHctvB5nipIgac+iD39NTgesm6KI9b/O41kBbgZZj+DDKoJkjUM2n\n2oj4dB0fyaCQ6Zl97p6NMfE23gRlMG18faPnq7vd+tlPjDLzmG9x/9157ei0\n2ofveMxQ6IDNYmp2qdNAGsSi7QZ4Umwn75cgcbG9BvJok8OE/xE5K0FYO8s8\n8u+Z1hOsbVaXRGiYgfkg61fZ/lkgQCymhc9C5Iu7uyyczJb4ODaWuTgctvq7\nAqNtNXY7Vo8mPowNBqxAyGg4xUwVDFjkPPyDc7/VFTo6ejbti2vEnu48ViAw\nTstQePYjSl5Pb7SFseipeQyq10/fO3RUoz11wki4VQzVi8sTbMlOjfuxrW91\n/jjs\r\n=wx+s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwhDVL/YzfUQKNwJmy1TllSurI+6Y4YAEDEvvbXRK+VAIhAPqgB8Jcwvp8PzNGTSS68xMIj0jj0sQ5lVisUFhBBvFP"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.31eac79f.0_1586296664724_0.5926094339173782"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.ba05565e.0":{"name":"@material/mwc-list","version":"0.15.0-canary.ba05565e.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.6a40ef217.0","@material/list":"=6.0.0-canary.6a40ef217.0","@material/mwc-base":"0.15.0-canary.ba05565e.0","@material/mwc-checkbox":"0.15.0-canary.ba05565e.0","@material/mwc-radio":"0.15.0-canary.ba05565e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"f03dce4944b4b3fb02a1467dd03f7afc0b279a0a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" seslected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f03dce4944b4b3fb02a1467dd03f7afc0b279a0a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.ba05565e.0","_nodeVersion":"10.20.0","_npmVersion":"lerna/3.20.2/node@v10.20.0+x64 (linux)","dist":{"integrity":"sha512-k9n2eRPspTcFIWcxPCYFfeEdDawE9Phc2IRiSD+SaD+jSSKkYG3YZ4lYu5LnjTrE9ptaRcAi/ip+yFpUR38fyQ==","shasum":"bda47b382a8f536c84d86a2668c5f3d7e1b5686f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.ba05565e.0.tgz","fileCount":80,"unpackedSize":926619,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejgrGCRA9TVsSAnZWagAA2LwP/1WYYQf3zhZNnzfBwuZV\nz4lmHAwoXnN6jVEPpdlut+ik6Y3JTxLLos5I+oOXR6+OIeIi5isGpx1wrDvy\nU310fFQPHBF8PeIYt4cZc1T82+/EmUnSl9W7vMha0HV8ZIZQo2zuzIQmRu9s\nHTLuLnnAhvAKAmUmuX7KSF7xZp6PZLTUZIckQNCAx9kBv35GWBiflxnAb/1h\nl1evgOdWoIM3Y0lhqQ8aUi208eMDhV7WplpB3WWNHjmsqQxTtkQ7CyxJHDhh\nVCbDc7QziBLjEvEpzjFn2PTkvZ68ek13mUM+zyDLoXdEIU6bstEJCqWnSCg7\nu2rWJyzNZzCgw8wMTTolh8ssE3kuJA/xomAflqgk+VLkE4r9P1924txdGc1X\nw3udv3ULqDHu5TYe+AiKNG15A5EMAaUqRrHsiqNG/t5ZlYTTsMMoF9TG84NM\nBicMOwr1RqhGo8cVeAmRMlWQ8XO8wpDPkFhOXTaZ4XrGCKw78l+ScyC0wKYA\nGlDmTX7CIZ5oniaF/IUZ+Q4CVYuN9rAD5RMkFOaEJ7xD2so8sARWf2odqGea\n8Mr6ARLHH1kqzgxRTsm4TnZMhJFMTFfvcpYDCEGoailt1IW1SMrQ/gHDNT1C\nEz9VTb+saz+717ghrCNnPbSesywTXwyyy16hTsVmEX8aeyZGkIYc8WR32ze6\nl61g\r\n=Wand\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpnpLQ6DKMJO61qKTEI/qgVydsUB7DvTNrYSKCbkXFAQIgFKOhj2pPOSOmy1gn7/c9CLvwOfXdWdfSU8VYnaVbRes="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.ba05565e.0_1586367174226_0.8137686444838719"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.25099f79.0":{"name":"@material/mwc-list","version":"0.15.0-canary.25099f79.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.9930d9cc5.0","@material/list":"=6.0.0-canary.9930d9cc5.0","@material/mwc-base":"0.15.0-canary.25099f79.0","@material/mwc-checkbox":"0.15.0-canary.25099f79.0","@material/mwc-radio":"0.15.0-canary.25099f79.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"d2069c5f3f79653f2526d8fcca853faca1f2cba0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d2069c5f3f79653f2526d8fcca853faca1f2cba0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.25099f79.0","_nodeVersion":"10.20.0","_npmVersion":"lerna/3.20.2/node@v10.20.0+x64 (linux)","dist":{"integrity":"sha512-nKgiaiClOytB2PIMVz+vKIGsxDU5aKFN+t8q+5U767k56mmBEorWMXRSUI7JzcPg8TOfRs/JJh6IuSvJ8lQHCg==","shasum":"188631e98b2ab538d7a5911db999a5d96a587c60","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.25099f79.0.tgz","fileCount":80,"unpackedSize":926618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejkKTCRA9TVsSAnZWagAAxXwP/iAP6A+t0tmxRvWjT6Ns\nWIXnlN03te57eT5fUOHvmJeJUPHKV2i1xUSyM2ih4Dk1p8bLsGtp6HuCzPHK\nlpyP1L3XWEyKNvDEzN4+kqPLlnqgb4koVg988cmaIZTZZKXifMLH3SVfHu31\n/U0eeZyX9DQ7xvOGbw/UbzB1+e0c09zJh1p253B7hDGB1HvUXU0GLrOo7Vzz\nEeAlEbka+kntLQsLidUGNjFXWifyOJhfzWJYz/nGrGpYSXw43cuBnf2Eng4m\nK1OJW6PaKJt1EhLhR1HwFW1A/QSQ1xbSn/yw8ja8lYyi+IkNQdI7E2tXV74d\nnwhaeawkO+x264eIx7SjKz1oKdu0TP6G7Ut+3rgkX8OpH/T6Xbj+cxcddkh0\n9KTSjR0CAtSUpHl5sx8Ng6w3rz95aqjwVHmjnHbWkb3cBQ9xmp9rBiJ9XGcL\ndeBpJbfLGi8gaZCwRDfXvr7QVBatWnZW41D2Igr7TU3Mevxmyqu4J6i7QQW1\nnr6Z5XDEKCvpASkKPhx4AKPI+WE06IK9/Iky4zA7sn3sqoM7QOXCtpl55egV\n7QHCqmu7BQY6G5VzE1f7TO53ubIm8scqViJhTbIdTzwMMKi5Vs1w9p2SR0jK\nopcEg66xAM8PQs2yLu4oCUE9faorui6wTjHtVfral4LPz+ip5aMRN5cqr6z5\nmBD5\r\n=lMp0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEpMiHjCO/H20cPr4jGehJkPjC8rc04LOi/dAgWvjzSUAiBGiYcSfq/dLDQ0PFk9BcLrHa6HpLs7R8i/S9qzEB5kug=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.25099f79.0_1586381459187_0.8793833607915931"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.447e31c6.0":{"name":"@material/mwc-list","version":"0.15.0-canary.447e31c6.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.9930d9cc5.0","@material/list":"=6.0.0-canary.9930d9cc5.0","@material/mwc-base":"0.15.0-canary.447e31c6.0","@material/mwc-checkbox":"0.15.0-canary.447e31c6.0","@material/mwc-radio":"0.15.0-canary.447e31c6.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"948dcd3d057312750fa0c58715c74d5ae576abb4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/948dcd3d057312750fa0c58715c74d5ae576abb4/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.447e31c6.0","_nodeVersion":"10.20.0","_npmVersion":"lerna/3.20.2/node@v10.20.0+x64 (linux)","dist":{"integrity":"sha512-rwV1xGz1nSe4YATDjKR2p56BViukOjAZIvhAcKFjmLdL8C7WOHjHHdZfaXdNIoxkN1vF35V7NYJs6PQv6uiw6Q==","shasum":"5b7ad8fd03f610c733d0dec146024552ff8ec9d4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.447e31c6.0.tgz","fileCount":80,"unpackedSize":926618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejneGCRA9TVsSAnZWagAA3J0QAJ/fvGOcwppMIvwiiHib\nroZIFYk5bo1/qosGW/H+Y9Viq5gg1148uYHY1UlAKsptExhFG/0ORrLOtvmC\ncOLSW3nWGOanb5sQh7mWRuj6xF3WS6JE5DTxIAuUZZLqbfc+lS/VAC9mGrA7\nFpyQPWFRHdlNJkNqJHeY8jjMKPo2MKkX2H4qIZm7MQKrMlEj73CiT19YqvT9\nrJVg7JXcqH9PR15Je7V5D0EyJgTGEjNQiGxbCG5eFHN+Zjwc/sKblc60PLmo\n2ADDIP5YrCEQaX08ty7rFIsbPZn8w7AITB3joOOV5GhF1nb9Pjwd+8Wo9Odb\n+2avcRg7JEedZfdugQqGSuaQseYKJLx/DWZAjZwOGFjZoV4GuFClTw8V4Zn6\nh0PWZxK1vRHyP+l0+TZBivFvjG1ean2n3nJK8WaLNbPS+QwAxvCnfW6KxL10\nCYXk0b114SSfkLnjNfYKSVeJQNSecPYPOKT+4R7UIxocyqkVVXAyBJQaC5Gk\nezMdOh5KUAYXELFU1/9+lrGDOvLgqp2Plq7NCPbpI5+QFKEZQ/Egu2PLB4x6\nUCDBudh0BWmwGK5kQ63qFoyW2YXOISjrssf3aw8MOtl7iHx37cG0mODklrWY\n8iuLbQQ0TJXXkw89oYvOPn2hor1H/YA6K6ha4lj4FYImCj4mZxPGTrBshEzL\nXs+J\r\n=iN2l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHh9rTzxTkL7wpe6x8zH5v/OY3F9K8JRKCTXddr1dWnTAiEA168wg89VBCcAoREg2z6rEjWi+EoGEt+w9+p/fOs9aag="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.447e31c6.0_1586395013672_0.9827046428974267"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.d6dd84f7.0":{"name":"@material/mwc-list","version":"0.15.0-canary.d6dd84f7.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.05f5e1583.0","@material/list":"=6.0.0-canary.05f5e1583.0","@material/mwc-base":"0.15.0-canary.d6dd84f7.0","@material/mwc-checkbox":"0.15.0-canary.d6dd84f7.0","@material/mwc-radio":"0.15.0-canary.d6dd84f7.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"74f8e8617851a447758cb395b1e8bd3bf4c8c323","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/74f8e8617851a447758cb395b1e8bd3bf4c8c323/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.d6dd84f7.0","_nodeVersion":"10.20.0","_npmVersion":"lerna/3.20.2/node@v10.20.0+x64 (linux)","dist":{"integrity":"sha512-m2XL2sL6AW5p5PEVqLrMZz3AL96oxdOgbB/h9hheD9H80P3iQFsevERTZnJuZdSz2r/yOI/DWwcXDLO0u9Tihg==","shasum":"3864a286b91280323f2631ec8cf615b276f77166","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.d6dd84f7.0.tgz","fileCount":80,"unpackedSize":926618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejnmJCRA9TVsSAnZWagAAKhEP/1ik16HuAWc4zwRSpAZY\n3T3KGiiFMsFZjlbhyJfCo4MjMxh3Pr99hBYx1Akrws8cVGVvDEYK5rs2zRCM\ny8ppGoGGcnQCwoByxFTpBQL0neZq65M54kgW9lIFN32lz+S7YO0EocGPXWOH\nq6WJML40CVMCqUq7ddZvEeMLVvGRUjpTFTa2O3+K7McIxqZvMARyte0fW8Kx\nvsYPAj7rLqkuew2mbcg5bzU2aFT4ZjR2VtR5TqT6vlj4boOrqnePF5Tfwmcn\nWwRzmUuSJIMW3HPhF9sl91HBHxop+0VkgiqEIAw4IqTL7HGgXjSw0uNs9vtn\nC8jP9CfOdZvocdnWKAojWw+PZvFmakJai65UKxFLR76AyvLqM7EIB80Z6aVL\nsWMjVStIOE2iievZVUL7vpHGNFz/lyQ8HQVNfZnuATWRlV0HDgVZceQ6I4fW\npPSkWkFRQyDmoFs0ATqJozTGTPaDHsNnZe7BHuev0J0HZ1K2ufTQQhyidWuF\n2WV4ykY6MMD8erQtd1qalmBl4qNLD1+/8vpyBLHRUhoMHLhpt7s9zfFVvVCI\ne/VsxF0UbndM0f56DJ4XaFi2VOsS4q8R+0ViOa0JLZt8VtwWeZAfIvzEk0tk\nzmg6nZZ8NMtX4FIWwj5DNWgVKV8sEmmVuMxAM49JKUgJ1ULHJSiNcmvIGj4c\nXiax\r\n=FIKP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB7Pcv8obs+eSnL5VwLFPGcMMUQ5r/u4bRy2Pp+wbxT1AiBEXOS+X5AzBiHQkDUATDXP5WAK6TKnwX0WEJYF1sciuw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.d6dd84f7.0_1586395529490_0.9852027182210474"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.9b03ee68.0":{"name":"@material/mwc-list","version":"0.15.0-canary.9b03ee68.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.05f5e1583.0","@material/list":"=6.0.0-canary.05f5e1583.0","@material/mwc-base":"0.15.0-canary.9b03ee68.0","@material/mwc-checkbox":"0.15.0-canary.9b03ee68.0","@material/mwc-radio":"0.15.0-canary.9b03ee68.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"ab8e352b8af06379b151d5a80b316fcdfd6e2024","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple which is set on\n`mwc-list-item`'s `::before` and `::after` pseudo-elements.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr > *::before,\n  #styledr > *::after {\n    display: none;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ab8e352b8af06379b151d5a80b316fcdfd6e2024/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.9b03ee68.0","_nodeVersion":"10.20.0","_npmVersion":"lerna/3.20.2/node@v10.20.0+x64 (linux)","dist":{"integrity":"sha512-VuwYGRcTQIYDIoR14Kfxby1Jb8cNtIOIm7jmF9gDA4wb6vi1vxwADixINCBQjaYqp0wfixXjjyNSM3PVInlRHQ==","shasum":"a15e78da7f1d333b9fb2fd927a80995e27784bce","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.9b03ee68.0.tgz","fileCount":80,"unpackedSize":926618,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJej3+BCRA9TVsSAnZWagAA7GoQAI/AWCMhLHBW8Q6x/1uf\njYUv6Qh0am96KpCZEjXBQQWPpskLpEM/ic4olHu2XC7E5uiQ+yYcf+7v/i1T\nUdfBK5ZDWvxr8cyiRH8BYIHnYhcH3zid30I5ahuAQ9LpoeFJdYbUZ4NCs/Ca\nC5JyhzMPlugkrnDXcRVji65rPsinf7S/5JvFEe8h36hFqzRJJhIq/UAva7ot\n53aKlWAcdNVRegUd3eiwtNJv2PHpVccPj/wNOCwGZ8nqpIekzSV+f+hZAkBe\nBdcRIHXCqADCjA4yu8ZG3dCtQGQv94+67XVS6EJYwW2nm0pOJMTS1wqpAChA\nnYzfM/KNHfeAUoBgyGZr3JbySkQiQ1Yp2nmf2GmoQ2g56kowehghwLRXx/h6\nJaVds34MHMEohE6xri2KptI8EwIuPibgsnwjf+K9CzRiC0R11adYRfKtZ5Jg\nNxcuXKMmTs/BSQRrX25cr5JLIIjbx/EpsC441+FrStcpLGTo7ajYnRaKTT9I\nqDTDFgJ+l07Gvhj8A6S2J//hSmuO3L5ICHma8V3LZ8KME4f/51YHCMdBpaVp\nS1w0bOzce8dg6j43hAEsw6vGKxuPZrgNMuNCmoDQt/emKJy1js5PhenQKKNE\nnl9n5tuLX+em51nSStjfgaBSjbe6A4eKI9u8WObdbTUHkjFsylG3qguX7MGQ\nW2Vg\r\n=GFMi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHsY/Go9T1K5DnqUKjwx0NIujlp/4tiUq24Rj32dZ3atAiAT9mUei75P1wpCE0K8LxZU5n4xZ/2aeWi+COU0kHyJ3w=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.9b03ee68.0_1586462592677_0.46936144275351843"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.bbc25b10.0":{"name":"@material/mwc-list","version":"0.15.0-canary.bbc25b10.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.05f5e1583.0","@material/density":"=6.0.0-canary.05f5e1583.0","@material/feature-targeting":"=6.0.0-canary.05f5e1583.0","@material/list":"=6.0.0-canary.05f5e1583.0","@material/mwc-base":"0.15.0-canary.bbc25b10.0","@material/mwc-checkbox":"0.15.0-canary.bbc25b10.0","@material/mwc-radio":"0.15.0-canary.bbc25b10.0","@material/mwc-ripple":"0.15.0-canary.bbc25b10.0","@material/ripple":"=6.0.0-canary.05f5e1583.0","@material/rtl":"=6.0.0-canary.05f5e1583.0","@material/theme":"=6.0.0-canary.05f5e1583.0","@material/typography":"=6.0.0-canary.05f5e1583.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"a56f18fee2a99903e5867ab91175e4802a21cad0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a56f18fee2a99903e5867ab91175e4802a21cad0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.bbc25b10.0","_nodeVersion":"10.20.0","_npmVersion":"lerna/3.20.2/node@v10.20.0+x64 (linux)","dist":{"integrity":"sha512-HS3SKkYpo77nBZOp9IhsIt9rDifv/zrzfAne1i+0dyEvM22vlfN7B1RM+OPL5s1clcF8t8dpcGdxMcjb7BVWkw==","shasum":"65207e1465165a2abcaed393fce4833b4ea41882","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.bbc25b10.0.tgz","fileCount":80,"unpackedSize":922227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJekPcqCRA9TVsSAnZWagAA4K8P/R97yp7CiuP+tXdaozA1\nSGapW/AvU0sftHyMst8DdXP2w0HqoTXU6JL7RbzcEZIAbxAJ5Ho1jupHsNsm\n1OpZYuvxVLU9a0M6uzIBYl0xdARoyGD8LO5fhtH3aJIqfFWzakCFInvI49PP\ndV86OyfLlGpTxMc8eXCT+2Gn6V7TPaTi2a9nvQYWpVyBfjn2WE8Onib0qd3a\nreFbpOguBvzwK5TuKGrGDdmICnZYW6jWcF1AXMHnAK8KXjr3D2Oqz3Ri53Mw\n6u4A53vCOdKQBhrPHOgItkPpZmFVXw9gvSYpxnYP40mvIsJixpuXCDG1Rjlr\n4CvswkwHgvv1jcUdsWgfYBFcO/2KeekhgRk5WqKIXtfdt7UFYwSs+B1qsDvt\nmB/mb5Y/HYmXPGDK4a42XXribQJCtxbFuKebVbSxoNonkc20m4422wkuFZFk\nN1u32Ri5S90osBf5z+zdRi8YCfqFwusL3ZhxgKs5cI7wXAnJ7CP4C1aJ2+wR\n5MfPJUL3aniQ430zADUcMranolaRRN2QPfFWRgEpld0fsRGCRiHl1KUv8iNj\nn1WqyjOx8CevTwEFUKfl8dKvH3lZiUk6GV+unb6C8CLKXwr6fh/fiWA3Hb9Z\n39gIBSZiJqFIUQQ+R26XwQFOeYR02xnMuYCZJFLXciAj5czek0GrTtS8Cyy+\nINfh\r\n=ko8q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCGipjhDeHAzgg46c0dLNl9sLL18VSuDzr0yDtK2kjNhAIhAOP3qMEXzwobLutn2hUd7FhngxYlXUYqo+qgtifPuhtN"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.bbc25b10.0_1586558762204_0.6164616527149129"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.339cbfd4.0":{"name":"@material/mwc-list","version":"0.15.0-canary.339cbfd4.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.f172b0f90.0","@material/density":"=6.0.0-canary.f172b0f90.0","@material/feature-targeting":"=6.0.0-canary.f172b0f90.0","@material/list":"=6.0.0-canary.f172b0f90.0","@material/mwc-base":"0.15.0-canary.339cbfd4.0","@material/mwc-checkbox":"0.15.0-canary.339cbfd4.0","@material/mwc-radio":"0.15.0-canary.339cbfd4.0","@material/mwc-ripple":"0.15.0-canary.339cbfd4.0","@material/ripple":"=6.0.0-canary.f172b0f90.0","@material/rtl":"=6.0.0-canary.f172b0f90.0","@material/theme":"=6.0.0-canary.f172b0f90.0","@material/typography":"=6.0.0-canary.f172b0f90.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bb2a2c6f2ad1cc09cfc8d0cb5796203324564f76/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.339cbfd4.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-UDJ+s3It6yRaA013PJJzgnuXSQ7TMXIyC848iD+bdAbZ94h5TWaaEXb9Dxgym776DCECzJvXocsR1zCZvFp7ug==","shasum":"3818d2ec0647f54555aecc7154b4ace422b81902","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.339cbfd4.0.tgz","fileCount":80,"unpackedSize":922227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel0a1CRA9TVsSAnZWagAAc0YP/Aj8qqq6dNTBMdvFl9XP\nJul4SgysQ4YQTwzenvxKAei9NUdyzDQN7wwllKcG4DEo+63VwozG1Bl6djQs\n2KDOZggko9EIXR1cARS8JmUNxqm+qQSHXfZz7urifIRLJbpjUGGXs9t4dF1e\nJTmELptB4tueKcNy/TzqBX/YwlvCKRGZxpSqrV9tSeEXT572FZ3Uf9R5ITXO\nbjB2+4rNJwc7JBz2zaNqiPzxRwUATnJIm3bRnihwL6+eUly2mWNTkXsYq5UW\nKFXutXkpBVz/u03WLBocpPfe785cWyeQ5wxtUgZPQoGVw09LmaEDzLzjYHiU\nnLBpA96l5fSzGMfgSPY8tF1uWRdJjR1WefuxsXL0GjhQW1hQj47Qt6/rl5B2\nlYtgsNYBi7+4SoB3uoSe+CEVLZ5s5Q4OiikKgsGj0oZkEyUbrkumH7gKsHz4\n6lFNLuASmY5df7dQ7ZrMb0PQZ2VOMOVX0pdNvKDVJ1yekS4Ad6J9Rhm3nz1A\nzR5GreckgkOFbKjEXei4FuWcDGC8rx4FdRM/s+xJb81Rpczqb9zxbmwa08yz\nV0/rBKOoZgVcPZ7Q3alAzk7o1ECOj3o9CIY0g1gWkbL4yElUxNZrppEEVagz\n2sojVKsKvMdaNghAPZfVWjGWtrD3RDW1SU0+oyg8fI9u0Hb1y1NAIGIb3Rh2\nQ+Lw\r\n=NP9i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH5Cd5KJATDDPlLpPsG4KDfIRp8KUTBV4HaLWhTzZhOiAiAFaa98VxxANSC0sYQzZMn2Sx4cy50Lav/bmTH5B3cOyQ=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.339cbfd4.0_1586972340908_0.9920669773763087"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.b74ff19f.0":{"name":"@material/mwc-list","version":"0.15.0-canary.b74ff19f.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.c02642273.0","@material/density":"=6.0.0-canary.c02642273.0","@material/feature-targeting":"=6.0.0-canary.c02642273.0","@material/list":"=6.0.0-canary.c02642273.0","@material/mwc-base":"0.15.0-canary.b74ff19f.0","@material/mwc-checkbox":"0.15.0-canary.b74ff19f.0","@material/mwc-radio":"0.15.0-canary.b74ff19f.0","@material/mwc-ripple":"0.15.0-canary.b74ff19f.0","@material/ripple":"=6.0.0-canary.c02642273.0","@material/rtl":"=6.0.0-canary.c02642273.0","@material/theme":"=6.0.0-canary.c02642273.0","@material/typography":"=6.0.0-canary.c02642273.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4a8d0d2eb87a0979a2039ae68ccef8af0c8b7b48/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.b74ff19f.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-+orv3jlBbHlV6hnpQOxz0yMfIAAQdX1Rekrkc3gEMuVRwv3DAbi2UQUJHK61+eqWihXecBuKNt9YIztCPJWmkw==","shasum":"3c440b833af9f9eae161d04c891cd0e776d68d4d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.b74ff19f.0.tgz","fileCount":80,"unpackedSize":922227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel2jbCRA9TVsSAnZWagAAGQQQAIQDtP4XuTk9Z65e926D\n6bjTLIjcOOXspF4kn8q9hYpEaAxKZb6K4aGkB9LAgT+5/cXvyD+uqHcxplPy\n0qvV8wkDYViLpk9vgPet+wwh8nZ4OoZWB6MdZOkdFnhWmpzhygD4/d+KnECC\n3I3scgKvtFffHUOaZ9LFfR3zFDyQKOAA96AGPxOmsbUT+ES14w8Y0BqQDlj7\nQJ7bxeBuAqbE3c9l+4RLRzOOqKrm+ub/6G1Tqg3MEBg0C6GyH/r7GN1zcOPW\noonC6jIqYli+ooMDZJ2OKW7Ct00Ny9Is9g2lxdOOS07XcgcaLT7jzxJJN9z3\nFNqwsJuYenMrFVhcU1ORu1thxH3pHXprp3coyK3vofaPwzsfe/mIxndFi4sp\n3jIlSf81uzsCbtTNutaQgNA+ySEX4ujpQOEOHAG8JkFZ+cDKwrGUIcfdhCtB\nCErEaPxXvydLqSjIFjS6ToOR2uWsMi0oRea8GdqHJj01FCu264jzBMywvkQC\n3pGw4F4euNDiTHKg1/mNWRPp97PaxxaXzM4b5YWr9YmN7IGkx9Ggi+odMo9D\nPxi9MJ5zfYfnXw6aPoXNBA0j+PpzQmn3RK+C+FE3eENF+vGxanaCiLylXVED\nP+vy0k9k3u2haEf4/kxtMjiv+Xt0xBfv5IHj32y5j1Ge7HVMApzSyhLbb+oq\n1qxu\r\n=TTqt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEeHQZdg3KKadNX6zBaXrcChSMBYlGgYQ7NiNHgr4kORAiB+Rs711XncL9ad/hMQLC1/rdKoQ9CHlNEP/mE4E2qbxA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.b74ff19f.0_1586981082569_0.33013448691439895"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.aaa16853.0":{"name":"@material/mwc-list","version":"0.15.0-canary.aaa16853.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.c02642273.0","@material/density":"=6.0.0-canary.c02642273.0","@material/feature-targeting":"=6.0.0-canary.c02642273.0","@material/list":"=6.0.0-canary.c02642273.0","@material/mwc-base":"0.15.0-canary.aaa16853.0","@material/mwc-checkbox":"0.15.0-canary.aaa16853.0","@material/mwc-radio":"0.15.0-canary.aaa16853.0","@material/mwc-ripple":"0.15.0-canary.aaa16853.0","@material/ripple":"=6.0.0-canary.c02642273.0","@material/rtl":"=6.0.0-canary.c02642273.0","@material/theme":"=6.0.0-canary.c02642273.0","@material/typography":"=6.0.0-canary.c02642273.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"7546404b77983a36ca5e25efc1078681498f260b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7546404b77983a36ca5e25efc1078681498f260b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.aaa16853.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-Kp5E30nHcnTwrSJjHcq7ZPoEb0A+ZqY7eQu/GDu27a88NmXGFPOFs47J0juQspI2IA2mL8oqfNf04bx1U4M7EA==","shasum":"77381ea5f3f38d33337f3e68b03d517a1778e31d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.aaa16853.0.tgz","fileCount":80,"unpackedSize":922227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJel42SCRA9TVsSAnZWagAANFYP/jgvx8kZNWUeOX7fJgGs\nDqILtuhwo7ziXvZmMJs4TOWswnbvq5YbsAsu6ljdD7jFKeygTmuwIHxkWUbO\nnDXAfmMmxov98CbbPS8tIAxzD5EOUAddhJZev/64PrY2fHsnhVtsX6gqJcFT\n4hhXmqWvV30PIomPbWPgVU27lKnvAZAkS65FIynqMdCPaik/NJgKhPCUjOOj\nfacQLvB3oQgvAnHXzJIzYELcM1BvTSpqSfueXxF5Q6HH4jzeHdyQ4nrCKzWM\n1ZDFA/wMf6ElDsHudfa/J87UzMmUmP/3On+c0KU7VysQMgEaXgQFNKIE46N3\nNXujMhQ+znq9/5ATjzXBI9axXE2Om7pJIIM8D95V09/J1isDmxN03g72BxlC\n84Ba0oee9um6T3c+Onp5+cNSxJeJlo3ToEgT6BTQBGV99dN6SAP+y90Xpm/7\nhW6Qzf54GIwRG4gWlkOxNxnSuhzlHFBNA8M18M49zPTijJcULHLo0iLB23dA\nhgfZpMRB9qatahHUZWK7jw/FJCnuVDV9g+ZMvs/yYLHungo2oyWPegO0/24B\nKIdI93KgdZChlYTe7tZBmYwptOlez4+JYp3sh/JU7yQPYLpq/GWgpDCI7Ic+\nVmfLOxn83wF6NyG3iYn+f3jRFmilg/4Kpw9nNId4XWbHW8yxIKlAfg8G9XGT\ntkJl\r\n=PD4B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCefWmhZ1xyo0cwl+F07So7xXtiAj2AsCZWIRqkpqhzzAIgL3PzOvhWO8Up9sWVAgX9MAnUV09S2q+djnMwqMVaSpk="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.aaa16853.0_1586990481588_0.8988713156244128"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.826b23e7.0":{"name":"@material/mwc-list","version":"0.15.0-canary.826b23e7.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.ce6cb7024.0","@material/density":"=6.0.0-canary.ce6cb7024.0","@material/feature-targeting":"=6.0.0-canary.ce6cb7024.0","@material/list":"=6.0.0-canary.ce6cb7024.0","@material/mwc-base":"0.15.0-canary.826b23e7.0","@material/mwc-checkbox":"0.15.0-canary.826b23e7.0","@material/mwc-radio":"0.15.0-canary.826b23e7.0","@material/mwc-ripple":"0.15.0-canary.826b23e7.0","@material/ripple":"=6.0.0-canary.ce6cb7024.0","@material/rtl":"=6.0.0-canary.ce6cb7024.0","@material/theme":"=6.0.0-canary.ce6cb7024.0","@material/typography":"=6.0.0-canary.ce6cb7024.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"00403df32c75dc9e2a64a38be1eb1df45ecc57ff","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00403df32c75dc9e2a64a38be1eb1df45ecc57ff/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.826b23e7.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-6B+7Fs2/dD5AuuHLsGCcy/tIZkZjHHsvBoVb5CpfCGLE2nLWNNn7RTnk9Uq9oh8p0tra0kzwyqx2TOntvwTLVw==","shasum":"5d88252fcdc98a8c29fd415441a671895a5ef46c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.826b23e7.0.tgz","fileCount":80,"unpackedSize":922227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemKqbCRA9TVsSAnZWagAA0RQP/Ru3KBHoS15jKlJHIqxT\nLwaHNu5PyBr/jALR9zLXlmLUG1LdzdruNQKaQeFh5Z7K2ZjZ7SuxFQxClb6U\njxkfZCNg0H76gPYakEGj/l0iM4D8cquveoTOCkvLLvwUOnjewlOaxW/Fqjmx\ncu3ghu41lFxZwN3cypE8SrkzA/ZVP19MxEsEuMMZql40TB/OVWl9uur7jq8q\n0jvUcXsmG9gq1xMCujR1ud91bOOFfY2nILlp39jCG7YnQdgWA63gxE1z+b5A\nibt03TkhaTOFozz9YfUHogtaZFX/Vth26wVp59u9YQJVh1HpbDp//8jHb866\nbrqBsIFDWUwlT6lFOYI/t06+Vrt+pqo//5jrDVvz99opINZtrrfwTDp/AQuE\nHJGOhfX9CyU9pJ0equzBHydQiC+7c3VjfWqSv0dgIUaID23abJLATBN7HCu0\nkNsOjstXd4VD94pDeN7VOz/4GjaygpoGbVpAbd9n2GWpIFSDVQLgZDbEg78K\nfMhtbig3lSKpkjZdW8fLK5mNFQfYBKg6Z2rgxRSzKdhzUInX5ZDNlMlhij1J\n8vKx8oOhc2vIbPSNfkyJhhnmcF8St7zFMWEyc0NZxlVt3vx045iieEbR1gBH\nShoCkeV8KQi2OyWxxiwXqGiYebgGtyU/h89m29YZvi+rFsvBnUhunUPvPEYm\nFNg1\r\n=J3vq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH7O2npuEArGjMsjSLriIUFpBxAC4ZEQKxrwcHH0C4uSAiAlCljJ9pCrczOjtQ+ply9sn/nSXSGllewzg67KP4jFsA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.826b23e7.0_1587063451206_0.047587126894366616"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.e1ad2b2f.0":{"name":"@material/mwc-list","version":"0.15.0-canary.e1ad2b2f.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.ce6cb7024.0","@material/density":"=6.0.0-canary.ce6cb7024.0","@material/feature-targeting":"=6.0.0-canary.ce6cb7024.0","@material/list":"=6.0.0-canary.ce6cb7024.0","@material/mwc-base":"0.15.0-canary.e1ad2b2f.0","@material/mwc-checkbox":"0.15.0-canary.e1ad2b2f.0","@material/mwc-radio":"0.15.0-canary.e1ad2b2f.0","@material/mwc-ripple":"0.15.0-canary.e1ad2b2f.0","@material/ripple":"=6.0.0-canary.ce6cb7024.0","@material/rtl":"=6.0.0-canary.ce6cb7024.0","@material/theme":"=6.0.0-canary.ce6cb7024.0","@material/typography":"=6.0.0-canary.ce6cb7024.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"148a509de33ca1ac17781a9e24bf8735ec5b2874","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/148a509de33ca1ac17781a9e24bf8735ec5b2874/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.e1ad2b2f.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-6TsxTG/fknhY8HBo8i2ZfEfboSsDJYn8Sv5273lub4x6TBMHqhY5AQLXQ4DHT/sxfaLvHDoOBqNFJZDAH5lHKw==","shasum":"a9229755a0f3b40fd2d6d4cec4d824c847662e6e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.e1ad2b2f.0.tgz","fileCount":80,"unpackedSize":922227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemjVeCRA9TVsSAnZWagAAw1AP/3JmoYYdEd+8sSqEEh+t\nOFo18EG01ZalSCrQsi3t6Dl9nP72NTllLGn9BFi5nF8hjp3mZg6BLqpDGCv5\nPiclcqsLyCWVpzpFk7svRNTBrFQIbrUeYgeaClMxWhi7nze/d6k8d9a0OLyg\nAfA/xxfPSTP5xlF9ehP8hY4qSQnMJvoODCDy20u52oqTapmyf4I/OC9++/2z\nyJGb4nCBupFFMx38DjGbDcwzPjKxEmOcct77pfXoLNVtuxMJ6v7JvzUVGezu\nEMWjZcozyeQi1Gh4cVe71WEfE/O/8caxbuK9SCVUC2laX+kyt5+ModVGFYAP\nVjYn2T9AiZsnM3bsuga0xd6SDCP5d2crcpiyGJDXpBs9R5Ursjux0VkPBXaw\nno8Q3hwMOyN/YP1MMqtF79PGVb5a+fMKOSZaqLgO4TwqeiGI4f7zYjLh4VH8\n9zKQUBWgnCqvnSpONl1sRv0rFeaUcCGG8xb3s5voN6GIAIX+YQX/hUnEMcUI\nASakBersRJZT34WqqEg6t8AhyDyyo3gdE3dnaUIcCuvPJASiPVwpWLidlrMH\nJr1PzWfoGEbe7MJUf4Xcp4uHb6fxJ6NqfJq7/4lb9a9BEj3HVooH2tVNbYF0\nD3D8GDjQns+D19q79OclQR7e2Y0//MXdut1lg/2tbo52W3FawQpQyRBvJs+l\n45UF\r\n=uU3V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCvSUve5xa/8KTNzh8WL1XnF7jbUZ/Zb3XnPM3kStcvKwIhALETnEy0e4tN9EalbUnb/4VOCKIHoVCt5SKqXJZDZlr9"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.e1ad2b2f.0_1587164510301_0.5252683230021633"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.bade5580.0":{"name":"@material/mwc-list","version":"0.15.0-canary.bade5580.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.ce6cb7024.0","@material/density":"=6.0.0-canary.ce6cb7024.0","@material/feature-targeting":"=6.0.0-canary.ce6cb7024.0","@material/list":"=6.0.0-canary.ce6cb7024.0","@material/mwc-base":"0.15.0-canary.bade5580.0","@material/mwc-checkbox":"0.15.0-canary.bade5580.0","@material/mwc-radio":"0.15.0-canary.bade5580.0","@material/mwc-ripple":"0.15.0-canary.bade5580.0","@material/ripple":"=6.0.0-canary.ce6cb7024.0","@material/rtl":"=6.0.0-canary.ce6cb7024.0","@material/theme":"=6.0.0-canary.ce6cb7024.0","@material/typography":"=6.0.0-canary.ce6cb7024.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"6e463a20777b8cff5146a68db7bffe3f5aa9674d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e463a20777b8cff5146a68db7bffe3f5aa9674d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.bade5580.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-xJWy7kaZCk9/cP1jpSHJFqHkKZJxLm3MK4zfEHVMJCfInH/OFMsasyadu+uX6nmSv0dpkFJZ44H4JHtNHJSpWA==","shasum":"2d12e9cc5eec9d9dc0f84f9485b1d12da7d8129c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.bade5580.0.tgz","fileCount":80,"unpackedSize":922227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemjmICRA9TVsSAnZWagAAvXIQAJzaBU7x7K4r2k+x14j7\nQuoWvkUC/0GSXlef3lTIg84123mr1ulrBYrSe0x8j4bUn5ft1lrI3DbKYjcG\nv3QogvXAIaCopPMj0aC+tAvR9RlB08lWjDJ7lqaJXY3BsPi6TaS47tIFK1ki\n5vDaP8BQX45imh861x+b8d7HR+t6XrVwJh594nbGIGgj0O7FRm4mOjRli6NI\nK5lJcvPDvgDkOh3WM8q5F6RgMu08myeMayxpNY5VITR8I0jsJh+L4WRDrPtA\nGiE3Xs4P1uJnBbkFV0nPx8c6eWFQmsoYA6EIDULOcf3nbDosZuXbrtmXr6rz\nngzU5Qlzw3cvSAJp9tA77cL48zET92dDKPWG8X9yOjxlCGSE3e+2vH1HSAAY\n2mGhNEYWR3oQzbKHipHc5y/+rnf5eTrV8ugJ888JzSHY2J7DafyT/zrvx89f\nf133NBXM0nb/Y6HajPDM9xniMf3+yHvpQaGbMUizrteteatZSbG/vkP/2yuE\n3XGQYQyIpdWMmF9gaagYdofS+Z8dgNSzgDhNHjZKNmfDC1759ahSLklEnOEI\n5vh1o+aWGU4VTNbGEziRGm8v3D8xmV06VNoIJcEOA8FOUN62jAEc0ai2aJsC\nv8xdePmkxE018xTcD/LKyVC4XQTRb6vyKerNp6r7MuoKRn2Ik5a7Xse5mfKD\nxYut\r\n=nDMn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCawYCiw29TS71J8RZc1otLpAo7OcS77pcXrnvoWKwjfwIhAJIpZ/RqNipPUqpIwGZkJEl5WleMVslI1bGNyXfDMwwC"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.bade5580.0_1587165576160_0.7300988728859366"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.dae38247.0":{"name":"@material/mwc-list","version":"0.15.0-canary.dae38247.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.ce6cb7024.0","@material/density":"=6.0.0-canary.ce6cb7024.0","@material/feature-targeting":"=6.0.0-canary.ce6cb7024.0","@material/list":"=6.0.0-canary.ce6cb7024.0","@material/mwc-base":"0.15.0-canary.dae38247.0","@material/mwc-checkbox":"0.15.0-canary.dae38247.0","@material/mwc-radio":"0.15.0-canary.dae38247.0","@material/mwc-ripple":"0.15.0-canary.dae38247.0","@material/ripple":"=6.0.0-canary.ce6cb7024.0","@material/rtl":"=6.0.0-canary.ce6cb7024.0","@material/theme":"=6.0.0-canary.ce6cb7024.0","@material/typography":"=6.0.0-canary.ce6cb7024.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"b704c816f10599ee9a5d9b89a55d9c95d2e36f4e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b704c816f10599ee9a5d9b89a55d9c95d2e36f4e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.dae38247.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-5PJnncs1D2bubUEscwRGFs0owR4V2Gc+1SXl5GwjmbEs0amJqjLVm6y5P2bprPv5NTcLubTsMCk7FBJIlslStg==","shasum":"69da87ec8d818e303f2c3c4886954ae8c3c9094c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.dae38247.0.tgz","fileCount":80,"unpackedSize":922227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemkbeCRA9TVsSAnZWagAA7cEP+QBmwE2wYeUodZcEuxhy\nR4Qlw6a4Mp43lOZ1XRjREx1vXmQTTrwvGRcExfYk27CT+3dov5YrR3Dk2q0O\ndeslMldDImMhWtSGPc1kKd0cOl7OpLM/iDoSdqozqNbG/R6KXkWp6ajM56+L\n1wQvH13zodO69x17ukppT+6fv3ju1ghNAZSOolTZAhozDRbrIuU/bYZafiX4\nQtWpxM8oPIjAYzfqudzHt/L1zy2TYMuKVJ/zsVLjfpm/QunmjE581gUk68HO\nT2SLNMMjhJz9J/sZJZNkK7NtHfDcOj1zAVBBixiyt4qgvc+6iZ8TGDXtE7x/\ncQAF4rzYN5F6CITYTiO87OlO+g3yjYNfeNLO6vT9Ns6oO6kSWDUeRA6WklIR\nxWNnJJr3DRhdXJaSeqno6qxYiU8LOW9VLFQK5pkuNQAR46NJzzfcvUD4MVRL\nAMP6Q+mE42myNzcyuT9VGUYX0Rh9NR039Wb5xIUcedeQVPFaCO3DnwIw1RUz\n+TkVGT+wen+F9XEl+xD2iUP+tH64EV4je8XYeoIeCoQMQC9VRoxv22X0eKVw\n411tQheoSJnfGcXtjy6QQb+AqN/FhszBPWmGTIlTyCZxGOpV+Dn8jLEms5Mf\nFd6Zwrf7UHkxWN3AHe2IyQriOsVVsl1dVvW70hgxUfIl7bWzlMARBXhy+4De\nGeQQ\r\n=ycHR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDM2luaZSceFWcAJCHVErUvzNd62KO4QNCBOotX+iLSqwIgJkVj/PXdMidBSR75q94JDctzj4/IDzHzpWbyf/rJOAc="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.dae38247.0_1587168990042_0.8743465667534764"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.a04c0b82.0":{"name":"@material/mwc-list","version":"0.15.0-canary.a04c0b82.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.c4b4bba96.0","@material/density":"=6.0.0-canary.c4b4bba96.0","@material/feature-targeting":"=6.0.0-canary.c4b4bba96.0","@material/list":"=6.0.0-canary.c4b4bba96.0","@material/mwc-base":"0.15.0-canary.a04c0b82.0","@material/mwc-checkbox":"0.15.0-canary.a04c0b82.0","@material/mwc-radio":"0.15.0-canary.a04c0b82.0","@material/mwc-ripple":"0.15.0-canary.a04c0b82.0","@material/ripple":"=6.0.0-canary.c4b4bba96.0","@material/rtl":"=6.0.0-canary.c4b4bba96.0","@material/theme":"=6.0.0-canary.c4b4bba96.0","@material/typography":"=6.0.0-canary.c4b4bba96.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"23904437ed2cd67305827b08d512e6dd06858b16","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/23904437ed2cd67305827b08d512e6dd06858b16/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.a04c0b82.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-0uMiUhUK25oZPW4aL3tMSP7FimFeDE85RDFOGkP5ofk5olKCRIleYTpZnivOt2eOgNTebP3jPrmJHIa9sQYfkg==","shasum":"af8bcabbe26c5ffa3adf245d860af906246e839a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.a04c0b82.0.tgz","fileCount":80,"unpackedSize":922227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemksfCRA9TVsSAnZWagAATNYQAJQS3tsU3JD4CUC0aVZo\neB12m1ViLKFoweAGI6wVsWjaT3Rv/upIHQgUDigeD5ercOjXvnoKdWHg+9BR\ngVdm4LS8YdbHZJB22t0aSJxDhK7nBlFsw8LYlcUb/0vXvKP5Xc9S7XI5gxU/\nx8srxZsrjYB5OsM9wQ36u604+wEaFLHFN+5tLD7g/OxuqgGir5f33LyfS38Q\nHeKNDTh3NvJpgYSw0SYjZMZzmD0wypQJSw1hwKYH9iUUY7IuBWOlskwEN4xl\n7ts64heOOaLDM5NqowBDG2kAkkrKLQiHMPj5xhkjgKo+2Qcv36LfYCMyFl9q\nabROEtfvR21psY+hqb1cJQ+akWRQ7PF3Rz0xkN1Ej6keGQA7fl8jOcJk7b/5\nWEMd6HtHxfGUKWbb/uNdH+cWCDCtTVzaylO/a3OZO0BpInl2wQdNbHOUQ4e6\nhALcAvQBDUMhx2dRESDQZ13qOY9AIn1ngou6nmXHqB4DuhZmVWJcIrac5RCx\nGpPBlW52IO8DkV7+V9Ysiv0F9ZXV5x0gYk1Ip9YuQh2+83KPYPEn5c4/WgEj\n2dWzHWG5hwX/zj1asdMgG0G/ZsfLw0c4m/mamx/Lrg3SI0ch38/rX44q99nL\nGSNycoNz38dT9Q2C8YXrdFlwiZK+OU+jSfZ11QbT9jOhLos4KardFJhDWdT8\nOqW7\r\n=aBBu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID38VQsFgYzAhfK6L0IqB0OlGPv9ChOTEL4rYXjx+16hAiEAoIPGckOThvLH5rnVEE+VL84TDwTzSPSUXpHzD9Muwu0="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.a04c0b82.0_1587170079322_0.5853931701864568"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.715decfe.0":{"name":"@material/mwc-list","version":"0.15.0-canary.715decfe.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.c4b4bba96.0","@material/density":"=6.0.0-canary.c4b4bba96.0","@material/feature-targeting":"=6.0.0-canary.c4b4bba96.0","@material/list":"=6.0.0-canary.c4b4bba96.0","@material/mwc-base":"0.15.0-canary.715decfe.0","@material/mwc-checkbox":"0.15.0-canary.715decfe.0","@material/mwc-radio":"0.15.0-canary.715decfe.0","@material/mwc-ripple":"0.15.0-canary.715decfe.0","@material/ripple":"=6.0.0-canary.c4b4bba96.0","@material/rtl":"=6.0.0-canary.c4b4bba96.0","@material/theme":"=6.0.0-canary.c4b4bba96.0","@material/typography":"=6.0.0-canary.c4b4bba96.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"ddba034f53f308afea3b1390f775b49e8a473e91","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddba034f53f308afea3b1390f775b49e8a473e91/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.715decfe.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-au46Ju0rkE1BQpTq4LE11o+0ElqT0GZ5jNa2qz/8k3GLJxgONlG4B9XLXDThPPPyTMBWstLrQfj5Up25vteP6Q==","shasum":"ab628f2fdefe9f40d8d86238bde5113481cfb797","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.715decfe.0.tgz","fileCount":80,"unpackedSize":922227,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeneuFCRA9TVsSAnZWagAA5e4P/0kO/UyhAKemdosYs79s\nGIOqCj+IEi9xTRjHqXbM4BmYXrEl7vbs8G4npj9jCyv1LHbz/EtU+XO5bmdU\nylAm8DrWZcDjabGGNXskMEWPLi4iMt/JY6tRmt6jT9EM7edtMe0kT/qBTwW3\ny7qkFp++xP6Ipz9aGfhmn6b5tPsIRsYGK3/RQtDNOqqjsbTkN3WpoZco3tAD\n+24mWH/BouxYNkWBU5ESPXdTTgOO3O5hbfZpm4DfkymUdRHS/sV289kX5nTh\nWa+1dk7vinyN1AlzogrAi/zg7NxYY3mFvqcJVJoJ+e3xuySth7hC5MvC3f8N\nsr6opOZhm55K/4v1DfoHyCrHOGIBarIRm/JbVLWFkwGd4lJoBp3VF20cTRVG\nM4wESYV/h4uYJbm+3s1h4RAS4ZRiaz7KCLmyTO6SSfIVXjwK7tMH7mvG0rv3\n6neORdW7X/2vhDFP90axtWqKBe438HKExu3s9zSpl7wGQc8piTaUeU5B50XZ\nMPuNwHivAkwJuGR4/kVqmGfSeeFo3QVxi8tDEMhB+xtcLbmVxCPmAvN+nd5X\n/No1C7twtbgwQF9tln73CQtCCP0P7lUaG0QGViKXvSdbsXjmoFDD/IHiI8qX\nthr7B+AWFH5GicK2FIXpNX15zWNSLw4YN0x1Mt5QinYenR9AANtM97rl9hBE\nmAql\r\n=hX0T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCPwrZWI8VraNl6xFG8zWAZz9mKeDk1l67YUb9rVtrygIgYOlG3zGb2f13vPaJZF+RRC0zRB5NAMg6zDUUDVQv7EI="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.715decfe.0_1587407749078_0.9609365526937554"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.c862cd04.0":{"name":"@material/mwc-list","version":"0.15.0-canary.c862cd04.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.c4b4bba96.0","@material/density":"=6.0.0-canary.c4b4bba96.0","@material/feature-targeting":"=6.0.0-canary.c4b4bba96.0","@material/list":"=6.0.0-canary.c4b4bba96.0","@material/mwc-base":"0.15.0-canary.c862cd04.0","@material/mwc-checkbox":"0.15.0-canary.c862cd04.0","@material/mwc-radio":"0.15.0-canary.c862cd04.0","@material/mwc-ripple":"0.15.0-canary.c862cd04.0","@material/ripple":"=6.0.0-canary.c4b4bba96.0","@material/rtl":"=6.0.0-canary.c4b4bba96.0","@material/theme":"=6.0.0-canary.c4b4bba96.0","@material/typography":"=6.0.0-canary.c4b4bba96.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"59b73d92f5709c37a2da654102a61dfabe148db1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/59b73d92f5709c37a2da654102a61dfabe148db1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.c862cd04.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-etFNgUOGNSvnZffZ0RGRyNiuce9NEw8JJic/H/5awCu/+1RUDpLYEAG2ubpgjt34EPluhExxSiZlVFx5P0uYJQ==","shasum":"adf406dec7a8ba25165acd2db98fd361bbe68cbd","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.c862cd04.0.tgz","fileCount":80,"unpackedSize":893645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenhVkCRA9TVsSAnZWagAAT/wP/24nwCd1wBTEJ4ZKTBcX\nPNK70oFNnm3PNGacMmMZnBdXQuydcbKohHrKisXgHB5RtG+l4I8+LhGhQO66\nqckob7yfBOzrnNICkxBvRhSaGBnmxV5lyTgYUfpfsf6ZiClJUGmtfhVRzT9w\nKldy6jiYR8O02hi2+yQ9yQvMdoPrue5e7q6HQboryVk+FCmYCxrjcfzdxeZX\nJGLCHclio+9p7mDCNq9mi4gzC/66Sl5wg9N1cWSG265CLve5K8DwgL7PJauQ\nQdGJUZBIWhyaGZ25vlBcAPfoXsY53ET/NLezp1W1iq1EjfIig3YF0QVlyyeq\nImCeX+roJoP689yTVt3dRLHZlC4qLdswM4u1EeMWRTRxwNipkPaoQqMOPyTG\nevdVxUnGzQje+4l3uFIUSrc0aYIST3NqCv7LhfZkbHgve+sZUhT5sYKeqjnD\nFJpBvLkRsLd/nwG3D7E2Uy4TcSzY3LGeQSJhke5XXq0m0Nh6ynl3i47xSVSi\n7hnpxVkSXnEW8YUmCf1bDu/RVbUr3SUxl8L2nKCLkQ0tP9Hv8QXXBPs0iYDX\nA0aCvo44i8zcpgUujbkXWl8Ntu54bMaPiASHTC2vCvHF2jtkovk0sRCSlYAc\nNNeCl+BJ9ZakqoMcscHm66d3dD48vfrde1LzJ8nCeUXMLKpBj33AR5mVZCHj\nVmk9\r\n=2hsF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA1esUBbgi2KASUNg8q833JHkYCDkhPTaBDgbf5+HSuDAiAJ6jbZuWwEwqzjNZWOt2OqXKj5tEwGQtWFeG0igsprqA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.c862cd04.0_1587418468453_0.1589460310888895"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.e9b01b35.0":{"name":"@material/mwc-list","version":"0.15.0-canary.e9b01b35.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.c4b4bba96.0","@material/density":"=6.0.0-canary.c4b4bba96.0","@material/feature-targeting":"=6.0.0-canary.c4b4bba96.0","@material/list":"=6.0.0-canary.c4b4bba96.0","@material/mwc-base":"0.15.0-canary.e9b01b35.0","@material/mwc-checkbox":"0.15.0-canary.e9b01b35.0","@material/mwc-radio":"0.15.0-canary.e9b01b35.0","@material/mwc-ripple":"0.15.0-canary.e9b01b35.0","@material/ripple":"=6.0.0-canary.c4b4bba96.0","@material/rtl":"=6.0.0-canary.c4b4bba96.0","@material/theme":"=6.0.0-canary.c4b4bba96.0","@material/typography":"=6.0.0-canary.c4b4bba96.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"873703765efd3bce3e325a39e56707cb2a7c47d8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/873703765efd3bce3e325a39e56707cb2a7c47d8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.e9b01b35.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-AQ158aTm6BWGUhUEKf/BnKfcauobXjuMBNs+rqFVPXAWFGMMT+5IrOz5KUZvbSGWansspXcL3uZ47nB/0E9UGA==","shasum":"cd1460732cdc5b565b50c65dec372bf480f7c782","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.e9b01b35.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenjBqCRA9TVsSAnZWagAA1EEP/2/gonflSXq8ZIlqvpvh\nv4Fv3NXVYlh0ZymgwqmP/Qqe7n/NHL0b2tTziJ++kABPg82thcBqSwjAPUHg\ncgfjSwnr+4o/3Rb5yEUtN3EH1mbw+ZZL0UWUZ6OpX3b+Hb/NkN5b1nTVM8VY\nPu371RScxAB/j/MvTHaot/oSFP6fPfMJlE+VEj9L+jf596yLsLGTkWbEwmMv\n9ssuBhyGmA3Vvnizjim+C9ze5bWlUlAt9Xo68Is/pCERFGw317vu4YA1LoRz\ni2gvrq5sqTkYDFPBjj2kCpDmESlBhSMdD1aVhYOmiCcG6aByFYgu1w2Naq8G\nqwBav1257zCKpSHH9GIxTpvDbPf77QbWs4DyGAxza2qIIj3InyDQ4QRfcv1V\n44u/0iVGc0sI+rcn+sEwW9T4icwAL0ED7yWaIMz1TImtwZTZDvPD8pMwcP/3\nobmA4JTDCWz4s3QOJ6IN1I+5quMxYxG4/Wy0CVNyqORjj3VmIA4RV9cp8Srn\niKEeNyEFI17pc91FKN0KKNS4D3f2RNJn9qK+v6l/VFpIoNuZ7ASqGMobknu2\nRjtZos8daEWAHnbcah66rq3NLcHt7CsyESeKb1J+kUNTNtCESYI0CAO2iHyV\ngJqcg7qu9XXwiYPcJuyHRZHrM8TQVVd9w7gQg5iAI8SJn27BC13BNANtlT3M\nC9jJ\r\n=8U/B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDt71ZQ3bgeGQ+ww15wodn/E9O8hUUXw1b0QCX09CICyAIhAKlbH7pTldS2yrzUffMOkMgWqWYeFkC303hJ8kLGehCF"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.e9b01b35.0_1587425385681_0.3348098511156812"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.ee7e8989.0":{"name":"@material/mwc-list","version":"0.15.0-canary.ee7e8989.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.7b4482402.0","@material/density":"=6.0.0-canary.7b4482402.0","@material/feature-targeting":"=6.0.0-canary.7b4482402.0","@material/list":"=6.0.0-canary.7b4482402.0","@material/mwc-base":"0.15.0-canary.ee7e8989.0","@material/mwc-checkbox":"0.15.0-canary.ee7e8989.0","@material/mwc-radio":"0.15.0-canary.ee7e8989.0","@material/mwc-ripple":"0.15.0-canary.ee7e8989.0","@material/ripple":"=6.0.0-canary.7b4482402.0","@material/rtl":"=6.0.0-canary.7b4482402.0","@material/theme":"=6.0.0-canary.7b4482402.0","@material/typography":"=6.0.0-canary.7b4482402.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"3b58236c5ca9326b11d092c5b9977dbd601298a2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b58236c5ca9326b11d092c5b9977dbd601298a2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.ee7e8989.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-58JD5KJL8jfs1swVJgeb9eo+pJ6jDbgUzMb2aQqybw8MrE4LSwd2DMFkdRC0W54B+qTRy9ldSMmqWK4bp02zyg==","shasum":"d75610412dc8f8900d927eba191a4d9b51246af4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.ee7e8989.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenkObCRA9TVsSAnZWagAAX1AP/30PZFcD/c/IhEdqy66U\nhYVigw7isINxr0rFSFYS3BaDlZKxvgZlWxYg1l7JOW2eIC2VesYsXzBBN0m7\nJBBiPXPDAv0b388gsq/60q/gdkvBbc9Q/umt4AZhQbUi/APuQlBcXCckIvv+\nCkU4PFn8HUHnUfRtQyed2arULB55Lh7n/Gv02rk3im3d5xt26QwaUMJHkVoY\nHDnNxRfAu0qO9uFgLimQ/hT05FE6GCMgC8qlqewXm4lN3El9sH1n97LxAp5F\nZsfkSJvf9c5QBMIXi08YpzgKsqO7omDKQOclUAVT2gbqEqZx/A4BkF1LNBz5\npMK309t079hpn5k7DtrLeD3KXKLHpfnOUF10dT0oR0UZEkviuQb4Z93LMC/O\notRi+x7cjDchf+9/JyCxDe01etMJ9t61TGwJbU8TmO84OUmoTiJO6qCOZMeG\n7C3yuJ3p4Jfe25aAkS0l3wJh2dxelHw/ZtO1J0nvMet5O1/jAiviyH13OvQt\nugVwyP/NJZPtyXRtnpBObPvk4U6QDy1xwOWgN53CCvppRE0B9C8koQH+jvZ0\nPdrlpXiZYm2XqXzEBDzzhCENOkpRufIGcEyZzfhZTFmP8Sfd1eb+7zSmwOce\n86lIp4Uft2DuUqOi+zfmHIgeUq6FBIOyfULWiuBXwBeomQFydjOPNKk8z4FW\nrWzg\r\n=GK7L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJSMP1Ci9yQZqmYs3kD43cYAANEgdbahCRIKPg52MvHQIhAJGMkVOZESXgEm/rJP2+nK3bXFSzohZjNDcZqVqxkWk4"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.ee7e8989.0_1587430298843_0.4511751267618844"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.9bf47ffa.0":{"name":"@material/mwc-list","version":"0.15.0-canary.9bf47ffa.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.deda86d8c.0","@material/density":"=6.0.0-canary.deda86d8c.0","@material/feature-targeting":"=6.0.0-canary.deda86d8c.0","@material/list":"=6.0.0-canary.deda86d8c.0","@material/mwc-base":"0.15.0-canary.9bf47ffa.0","@material/mwc-checkbox":"0.15.0-canary.9bf47ffa.0","@material/mwc-radio":"0.15.0-canary.9bf47ffa.0","@material/mwc-ripple":"0.15.0-canary.9bf47ffa.0","@material/ripple":"=6.0.0-canary.deda86d8c.0","@material/rtl":"=6.0.0-canary.deda86d8c.0","@material/theme":"=6.0.0-canary.deda86d8c.0","@material/typography":"=6.0.0-canary.deda86d8c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"282e30290957ddb18c6119523574ba36c65d7abc","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/282e30290957ddb18c6119523574ba36c65d7abc/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.9bf47ffa.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-7Wwks99JfJGOO3Io/XyTDxLzXHn+uTx3qvYtqla6qc91z9WcKSt/N33jZbGfIZP2yptAmvjc5FvNZXyMN9zO8w==","shasum":"ed6279dabf7f0990043ab9877d5c8097f96654be","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.9bf47ffa.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenz2uCRA9TVsSAnZWagAA/tUQAJhqaBn4826rXsLZKJhr\nSgJ3WHxuDRuCpUbP4DtHiqbb1SU4lxD0niJj3GKSgDxPWtMB0hOjG+MNaMeP\nzTiMCvky36XwF26EsiYLIW1FjNp3yntfTWcPFcjiLPSGqxmILau/UmcflMIT\nXOAboHmy/YXBtW/5lqbVGO8JNPNcu54t1NDW5y+B++iGgK5jVyZD5w6P+RGp\n9C29vcRVraD1wySDZ3ATeLkXv0J67YTKflRT6C8wuU3LHOjeBAtbh7f5o7Df\nafjvYEckMjVo6JUTmC8Puvgt0wdwKF0vALaP0YwOfHgEM4feuosnl83qD2dm\n2evZXBOCi0DCXUBahSsPTTqHb+oVQP3POay+QjJe8mEMfDppm1PtancbDH0P\n9Wk5SmXCzeaU5JA8474+bwRPlaxz6N03WtkfyISgoWi7QwOAOd33NgE3OJUj\nfu3iSXfORaOSCXljnracSBPg2KN9wvZH8bOq4IAVu2NgWz8JyqUXhxrtjOTG\niYbQHc0gA0eZpslqIBVkrD3gdcQwKju5VzZJrnkDybSfj9DCMe17NHbvHjH4\nzCHzyzggi6AtA+AOTMMn8Y7DAzD+lc43xnkFQ6Dok6doUiNxtLDgVLA3b9UH\nsc2NUciB+m2AC3CLrhHES+D0UugommINN+BAkeWlWQc5ir8QU4EYUboQNuTv\nYL6P\r\n=8iJL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDH7904xWYklwOGD9Fzl5P0gFD/H9dXOwFd8qy6xh30IQIgIvomJRhymxFTp0pzgzVgzVH+EIbh3hrgaLJFZVivLn4="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.9bf47ffa.0_1587494318179_0.632075586733553"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.078dbd98.0":{"name":"@material/mwc-list","version":"0.15.0-canary.078dbd98.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.c141801d5.0","@material/density":"=6.0.0-canary.c141801d5.0","@material/feature-targeting":"=6.0.0-canary.c141801d5.0","@material/list":"=6.0.0-canary.c141801d5.0","@material/mwc-base":"0.15.0-canary.078dbd98.0","@material/mwc-checkbox":"0.15.0-canary.078dbd98.0","@material/mwc-radio":"0.15.0-canary.078dbd98.0","@material/mwc-ripple":"0.15.0-canary.078dbd98.0","@material/ripple":"=6.0.0-canary.c141801d5.0","@material/rtl":"=6.0.0-canary.c141801d5.0","@material/theme":"=6.0.0-canary.c141801d5.0","@material/typography":"=6.0.0-canary.c141801d5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"a45b9b95a7710162ffb06fe74053ff1d108d5684","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a45b9b95a7710162ffb06fe74053ff1d108d5684/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.078dbd98.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-nsNFiRPLrbFG1IaTogl2hrkl8BWnuJ3dgo/5TFjW4uA6NHmGqY5TE/uadezWdwSz8AXc/8QAoWAb4LafGnZPaA==","shasum":"0d3bb7bee911cc6f6adc6c61e475a3348057648a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.078dbd98.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJen2HJCRA9TVsSAnZWagAAGN8P/ipmrV992EB8dFxJluxU\nwHbxf4ExxTkXxK7+kFNL5Sb3e6l91AEB2tltqeFAHMDtQPlHY7SiddLyGOXO\nFzHVoa44PHY8jGXkdVrHytTCSeJ+d4DNgcdViWoASWxKgHekF7ObSFMP8ltZ\n0T/5zPJiHzqREEWEajzxHvYqo6g0Vr08O2aKcPtP+B9ISJIlGxE6i3+sV9b3\nuKHNfcm3/D6LAV+ZfRI8hTnbmrDmB852mdJWb9vdn9CM13ZuFm2DVbZwT3PD\ncTcv1DzmLEkiEKLhm4SB+9LtqGuMjzv9U8V9CAR/8R13O09sDWhFwWN2mm20\nXgaMNgQ+ziJNQHTYCary51X78dQrgOlSpHbGgTSvda1GHQYk+aMGvzdBcQQ6\n1cvmh5+OZeQZ3B9kE2rvcvGE9XbSdBshMtt0Tkd2Pn2tzCgQA7ZN4CLoICwH\nBmuitK6BkYtBCj4zzMZi/VNNRfbGb05gZITfTQbDHT6r7ErRk5Am5vvcENfB\nt0hoZaUm8EQ7O+OJiTNdake63bUvtAy9/o9WyqZewo8K46/nUs0QOa59bCES\n+pQmCs+4ve44cb4jK0n4LTm7msCYeu85q0IqlvlxPsoeyIc4WqgZ5ZJWMzax\n8c/SASCS/ZF1QGt7EVB1U+9/of2olLuupXBM+j72ud9FwrnH3f06X+5O8u5Q\n+L8J\r\n=3/Fp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCDPLH0+wscc1LqusUuesymXF0A6AnBbybXsWbyfDObhQIhAPfH46w+YQ4nDAt03MK0+BpmHXwO3kayW6v1Luz+EM2A"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.078dbd98.0_1587503560879_0.78490774103733"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.953015d6.0":{"name":"@material/mwc-list","version":"0.15.0-canary.953015d6.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.c141801d5.0","@material/density":"=6.0.0-canary.c141801d5.0","@material/feature-targeting":"=6.0.0-canary.c141801d5.0","@material/list":"=6.0.0-canary.c141801d5.0","@material/mwc-base":"0.15.0-canary.953015d6.0","@material/mwc-checkbox":"0.15.0-canary.953015d6.0","@material/mwc-radio":"0.15.0-canary.953015d6.0","@material/mwc-ripple":"0.15.0-canary.953015d6.0","@material/ripple":"=6.0.0-canary.c141801d5.0","@material/rtl":"=6.0.0-canary.c141801d5.0","@material/theme":"=6.0.0-canary.c141801d5.0","@material/typography":"=6.0.0-canary.c141801d5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"d875e6d658b1a3287b35d2c77aa8274d9828fb46","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d875e6d658b1a3287b35d2c77aa8274d9828fb46/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.953015d6.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-RQc0Wokr05SL3zQlS7+j9N7diJpK9RoNDn1qs6f5B7TAh/aKFgrJLDFtCqJzNgis7pUI9yfwwSgTGbrIotaHxA==","shasum":"b41a2a47c62ce705817e5a67bad7710038d7f29e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.953015d6.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJen2dDCRA9TVsSAnZWagAAPi4QAJpeMKDknbfOs5zprWgw\nPLHiWBi+YLxCHu9Za8RMO/9edZIvwD7Rp08n/6LD6W+o21pgVgQdmyQjj+rU\nCUKNcWnahqcJh5f/hf+Ab8coNbAFSXnMm0Bhq7x4IKqVdZBW+nmn+jvAt4JI\n2oVE0f4/qN1wwLCM0y38pEZ0lXxWHAZRF3SnkEpYIl8ZGdvbze9GZBBppCSr\nzeQ3OiJ3DSBrhghmbUSkT5IO0AGERMdsV0hNyALHbe4dL+62oJM/StIs+IIW\nFgg3/vMA4TYfDsBp05Km7lxy/VWgStRna0exaPbxk5tjyvnevMrgJpMI8Dgf\nDOamGWO9qJJpWJIGQwEbjer5ky8ayxMCtxHK5RPJixh1Jh09CU8y1CSLGzRU\nOHn0EO7r3jksWSlTsEjoQedOpjPMxzMnjGIkUVYOzPfmuqjOZRdqzSP46yY3\n0Nh8HxEkxx5VnCHpBYZA1wLvK4G3UhGtz9p61P5ayUiZUyI5DQV+HHrWGLcD\naDXvKQKVNngpCXLSLPNSF8npN3oWFSWuu8DtbTKIarLAqJgVzCRxGsjxSHS4\nQ4kYDtEh40d04ffZ3E0b8SmsbQrWlQ62YVHWjT6nHeMgo9sCQgCxxJk/ozHJ\n4e+G7e+2aZmhVPVm9P+kDYZjRukSPSo1b8o8uHmfpeRr3emF4Xz/GUn2zrlF\nuFFb\r\n=sN54\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHjFrnpwEbYKyVl4xBgd+I5gBcJy0pziBAszTXmtSJx4AiAEUiEXXh3jGexQ+/bRNo+QR+c+uQztHaOVMGcOkDv1gQ=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.953015d6.0_1587504962954_0.719196332524433"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.c360ec63.0":{"name":"@material/mwc-list","version":"0.15.0-canary.c360ec63.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.c141801d5.0","@material/density":"=6.0.0-canary.c141801d5.0","@material/feature-targeting":"=6.0.0-canary.c141801d5.0","@material/list":"=6.0.0-canary.c141801d5.0","@material/mwc-base":"0.15.0-canary.c360ec63.0","@material/mwc-checkbox":"0.15.0-canary.c360ec63.0","@material/mwc-radio":"0.15.0-canary.c360ec63.0","@material/mwc-ripple":"0.15.0-canary.c360ec63.0","@material/ripple":"=6.0.0-canary.c141801d5.0","@material/rtl":"=6.0.0-canary.c141801d5.0","@material/theme":"=6.0.0-canary.c141801d5.0","@material/typography":"=6.0.0-canary.c141801d5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"5147ccee26bbbacc14a1d7d86adb845ed406bbac","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5147ccee26bbbacc14a1d7d86adb845ed406bbac/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.c360ec63.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-YxJtGuRrSY1xhB4y2ULg5v5GtOBXP0+uLATIyJRQwDWle082DJSPc4ExNseoeMMFyMxSBdM/KFWFbSWXUQhVJA==","shasum":"5144515f8f177aae5608c8592ad06942b9f7c1fc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.c360ec63.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJen2y1CRA9TVsSAnZWagAA/HIP/jdr+83zPCdBs55oe8Y+\nM58BCFD9oAg9gLmsn/jmTyQJtCw7MDSMLiKS5Rafe+OTIzXSzt8Qm7xmHfhn\nf5x6ImR/hBtUjV1VSdgZiu5oqCxE81pt9zdFMGbJs7VVYlviTF74S4Du+i78\n9bdAFpjDkqG4V8mpif2v/ADLwpLM5mtgR9RqfHcP9nGPpMDH0jbU4LbLzag8\n7eartmrgqfaGSEO1uJ3oAbcy+HZFey+yCxcBq1IfANBMwvufhyWNc1ueXdW3\nuRs0fhbqpdQO+p4dLFK+Rl3RE0rGutL9Aje5qlPNUfl0KuMlvk+vudsIxIJu\nKCM6ZI8ukFS8o2MevtWKKhDrGJK/GTaT/57v5D5l4zkM5HAO7JBnVH75dJ7N\nA9w+UrtotDPYMSmsol+xyiABJkdW+GTqOyxMELHUrX6Bc8le2o2C0w6aY74T\nOVS0okm1WSLoUdpOxxspDtMDC804RLoAFhjmZJAo7hymS+xTVWU1jp/dealz\nS/FomSztCMFmI/BKIXzINcEH45kobtnslqYTeX1ge8fUe23aJ2IoU/y1oxLc\n2dFZeVUXGt2Jux9l6iKNAMl6kn3xPIKRuqvX4af7wgpC/uJGPZbWO+4cK/0z\neQN3nzQqKgrusvS7N2HyPP5dtqEVK9u4z5RFfG/vyLBeK85x7UqBIIcdDvpt\nla1x\r\n=pN0Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC9FvCntxOhN3iwmaforcSXzIVqGBtohicmidB7lpSXHAiEA9EkNdqgR19vyolYVYQ2H035ErQU7/0TyCGapDPiasps="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.c360ec63.0_1587506357149_0.873589314299337"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.d71b65aa.0":{"name":"@material/mwc-list","version":"0.15.0-canary.d71b65aa.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.c141801d5.0","@material/density":"=6.0.0-canary.c141801d5.0","@material/feature-targeting":"=6.0.0-canary.c141801d5.0","@material/list":"=6.0.0-canary.c141801d5.0","@material/mwc-base":"0.15.0-canary.d71b65aa.0","@material/mwc-checkbox":"0.15.0-canary.d71b65aa.0","@material/mwc-radio":"0.15.0-canary.d71b65aa.0","@material/mwc-ripple":"0.15.0-canary.d71b65aa.0","@material/ripple":"=6.0.0-canary.c141801d5.0","@material/rtl":"=6.0.0-canary.c141801d5.0","@material/theme":"=6.0.0-canary.c141801d5.0","@material/typography":"=6.0.0-canary.c141801d5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"5f57992160b26bdf181837dfc0b0ccac0425b3a2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5f57992160b26bdf181837dfc0b0ccac0425b3a2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.d71b65aa.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-Dov83WV8JGmWYKWO73yiyBmd0Ga8KGjD2sAQx2F+OTwzL/TxxY3s3e4hPNGviVW5iosd9nf3gPXwnRQvVRxUdg==","shasum":"832e1d5d8e4f52e51cf4998faae15b9912a15aa1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.d71b65aa.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJen3XLCRA9TVsSAnZWagAAo9MQAIz/JB7F2njEQesW69jk\n/X9sW10VtwjuGYDu0jrq66fwx7kvp1zkiB2f3k1XcO5newuNRHMegrjz7nZs\nYfPIZoBsLDHEmiOZ9YmiY0OFdOGe3njqfS609CiSY+49enhCXdmaBj45TTKw\nOnyXUeZymphB9Auu2tTijnVqsWyXWanFdcmkoSuR3z/Yjz1jsRXOWou3xqy5\nOvyl0MIvcS4f1eJQLVUNl++5brnMsNm5s1DkmOFSsV36uzLeAndhpWE73gsl\noN9vhHHNx+JLpmiOsR8cY9kWpC48wPqtUIVp8mwyogkXDUTbasM2dqWqsGPd\nLCymOkyfRnBI5Wlbe6vhoYb9Kl+KqZhK6kIqZ/KTTwk3SKub/p4y3jbYeDuz\nSQ9dOhQG0HvkC7BDBwgyuUWDC7i/IqL1I7xOrbDG1nSxC1DzIFGQ/Kl3PCox\nHGeCxkWp6QPIr3f3UxndoKah9A/bCELClqs9gNXtgn7fOl7MdaXw3tgvbJcH\nL/59Xz3aDAQOX+EPAzRh58OHsXAKbj/OORA/KJhfk7mVGzf5zkBeR8CCjnE1\noqSxP0UC7i7aZkzOsyvsP2iX5F6aPZH6v2Li+5WLl7iBDbNIIUjeEdx/OqnV\nlTZma+rLB846SvGuhgKoD/dvP36UlFISRZkSSAEkp//v+wzRF/pXFBb77JPd\nWFLV\r\n=kZTv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAqL6hgVPwPNcEj27NMsqFDMLPPAPow+zDMvpYtVqzhDAiBCdawBqX+dQsE3tHc1GGHpSAiawg1GJqB2M6ZKvckVCw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.d71b65aa.0_1587508682680_0.6195599960129736"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.58d51135.0":{"name":"@material/mwc-list","version":"0.15.0-canary.58d51135.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.28d10a96e.0","@material/density":"=6.0.0-canary.28d10a96e.0","@material/feature-targeting":"=6.0.0-canary.28d10a96e.0","@material/list":"=6.0.0-canary.28d10a96e.0","@material/mwc-base":"0.15.0-canary.58d51135.0","@material/mwc-checkbox":"0.15.0-canary.58d51135.0","@material/mwc-radio":"0.15.0-canary.58d51135.0","@material/mwc-ripple":"0.15.0-canary.58d51135.0","@material/ripple":"=6.0.0-canary.28d10a96e.0","@material/rtl":"=6.0.0-canary.28d10a96e.0","@material/theme":"=6.0.0-canary.28d10a96e.0","@material/typography":"=6.0.0-canary.28d10a96e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1e70b1d32a2db9ff5da6f37c7b50790b6269e8b0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.58d51135.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-bUjkNcjQIop6unAYxWNCckS/lhcVGyn7w2YpY82HjQTEjjwzl4DUs08iPtm0B7ZD/AG1zV7sccs6UTc/AoWXEg==","shasum":"bd9e1db08adc6c731ae712674501e16255c465ad","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.58d51135.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoOUYCRA9TVsSAnZWagAAnQkQAJ5KkjFe5n3eR90XVHWB\neudrAcjmey/q5fn8N1+saxpaOseI529PhGPx+NZdI9Vz2AQ2KcMzlRMLIcYB\nyaL1l1BVHSMZxk27YQHi/ZUl+FJx+vuqcuNP+zLcqskobk9Eryt/alKe7SvT\ndZCB+s2S1NkZttXVM8jxySOgE8Uk7de5powO7llq5MUS43jPl/PKjBwemltd\nYw9Zf3eSemnkcVUZb7Vx0LiPzDKO+js8w5xBzBJ/1o8I/dILX/NiW5+t1HeJ\nYObfhBk/eJgYneR0+J4XLul6aBwaDA9DorokslqZ+L32OEWX5cvpWtvVj4/a\nOAEWL8SdMVqrjE31saA6TUm+ZWrvL545mJ5eH1VAcIQ9JlMwDnI7OeRwCeDL\nWnC/Hgn3y8zDy0UBu8i/xhf7UMY02CCVGLpImGY4mwyVdHm5GDt03cqqpeWD\nmwesmfgdNvGl+1ArE6YhjGJylS6F93+6xdkNDBYyD+Y6X0bbJLitEyCUOM+O\nQSKZNJfuqypGvIIGNEwlz6bM+nQe8Ip2MkbAy0CuGjV1DwcWRVrXDNmPjLLC\niyn+VFUY4HeRPrEhFnTSG6HqLNbY+LXF70Ysp0TKcdLfnl6uOeHWI2PtAW9w\n7v8rKHgyuC1XUOUzjLHur8oIq0Fk34uCDvhW4M+jhz9snr9z+Le1EepHx/I+\ngGzz\r\n=mQkO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEdSM/68rD/MODRJo/Er1Y8qvphzqiikt07wEiGzv6QgAiEAyCfRPSZos7uI++Q8yzqSbq/9SwWcppHQiRK5tsezeo0="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.58d51135.0_1587602711651_0.1899824223525599"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.d0af8ba3.0":{"name":"@material/mwc-list","version":"0.15.0-canary.d0af8ba3.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=6.0.0-canary.28d10a96e.0","@material/density":"=6.0.0-canary.28d10a96e.0","@material/feature-targeting":"=6.0.0-canary.28d10a96e.0","@material/list":"=6.0.0-canary.28d10a96e.0","@material/mwc-base":"0.15.0-canary.d0af8ba3.0","@material/mwc-checkbox":"0.15.0-canary.d0af8ba3.0","@material/mwc-radio":"0.15.0-canary.d0af8ba3.0","@material/mwc-ripple":"0.15.0-canary.d0af8ba3.0","@material/ripple":"=6.0.0-canary.28d10a96e.0","@material/rtl":"=6.0.0-canary.28d10a96e.0","@material/theme":"=6.0.0-canary.28d10a96e.0","@material/typography":"=6.0.0-canary.28d10a96e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"86c71b26d7f2ffcaefe79c4882ac9867bef12b0e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/86c71b26d7f2ffcaefe79c4882ac9867bef12b0e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.d0af8ba3.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-naQ2icosf5c5IJ5oMyIGSVP2zrJbdbYiexl0YK0IOTI6zaD8m35Yof2RkTAMJ56FqsjT6Ooryq+507UEYAoAZQ==","shasum":"66b825f7efc372767c72d7adfb6c37089d150420","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.d0af8ba3.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeodoLCRA9TVsSAnZWagAAhoUP/i+iyPn5xqoUQvft9Ze2\n4jZlfsGUQ0A+CMMTEASGsB55sfuuqtq54jzuMFaWyODGDba+4ho+1a7TM7M6\nkMvVqakJ7VBsg1XosqquSaKQV2GxshvqPiMiLM+R2AhNWwXJa10Qrim/sYGL\nQ09+Lbq5sJE2TKoKWM93U3wh0+CFyC9Bbc0o28c1ZHALG/mBgsNQK8n77a6b\ntBKdctrOe71CN/3s4cPtmM6juT3IrXZoDfLFUQWVoBOIXSTdwEgwp4sR1heA\nfGWrwUmLp4sxdwlw+7K8egNUhVVIfZl1LwxxzLoB0h5yE4O+NIRuyjNZwi6R\n+9OO9hRmktR6ekTjJ4tozXR4aMT7lgS/z8SciAPFbn3TOsqXyuPMaM7t/oYy\nV4SbHNKIZJl35JRXMtWNpuFHJqfrJyVDwIyLJMFMUDOQKxPFKmaMP26VkF16\nj5Mkxla42EEIC+ME9Synh1erx0LgC+oarSUelMXW+xS0uJbR5I74m2aME3Kg\nHy9MhXT+pid681zlq26BEgEEO8ZyT6lQFxsOPlko2lJYBZy2P/hBgSzPj7j9\nyoqKS+tr4nZ5GoKZGvRXQqRYwa0aCm3pY0qSJMXiFAgpstWsXO5idbbQpaG/\nzsfT1P1D/TbRo+sFOb1zaMYL2pYeEhG5FRGX0zJqks1kvRCrxF10dNlKMw6a\nrn22\r\n=ChAN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICCqXyBoHDzuybqiDMmchc4MZVckAHuc8KDWUVbMi0yVAiEA7594csxWCSJ4OuxFddO71NhPvjtZGVzmXtPEqIgtNOs="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.d0af8ba3.0_1587665419413_0.5984273101533968"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.8872b17b.0":{"name":"@material/mwc-list","version":"0.15.0-canary.8872b17b.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8540808be.0","@material/density":"=7.0.0-canary.8540808be.0","@material/feature-targeting":"=7.0.0-canary.8540808be.0","@material/list":"=7.0.0-canary.8540808be.0","@material/mwc-base":"0.15.0-canary.8872b17b.0","@material/mwc-checkbox":"0.15.0-canary.8872b17b.0","@material/mwc-radio":"0.15.0-canary.8872b17b.0","@material/mwc-ripple":"0.15.0-canary.8872b17b.0","@material/ripple":"=7.0.0-canary.8540808be.0","@material/rtl":"=7.0.0-canary.8540808be.0","@material/theme":"=7.0.0-canary.8540808be.0","@material/typography":"=7.0.0-canary.8540808be.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"d1f49732d08170a0330f9fb28f2b2ca978daf858","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d1f49732d08170a0330f9fb28f2b2ca978daf858/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.8872b17b.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-vY0wc3T5TYgYzCThE6CP1OhDVEfbi485Sl1Kamc2zoin5kH+X3KDUCkjGjuCgib78yJDSpmsfDXK9lbiyLEAmg==","shasum":"51d7caf5c3d37ebc6c30fb7ede3a44f1722adb83","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.8872b17b.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeof1zCRA9TVsSAnZWagAAxs8QAICiIu5SvGG4v5qmMbmW\nEHAGK4w2bgZouNNEjF20m3umfnJTaeZWhXghyjL3p/1Qj8IcBLvM6wDnXNE4\ncisE4nX980N7bsQkwjsy/5AXJDX8wwGZE8pNvF8VowwayN8ToqGPRclpJQsr\nnXlaMr4b8WLLfAnn5f7Epuj7/LhQvKrtpNRd/K3YaosmHNsR0cldg9rLYrRj\n0Mo1ldO174JYx9UNr/t7qy6lp8ndvVVn8HTog4WK8hAi7sfYBkgStEnQYANJ\nwBLrBg9My4Yc2pQCueOUMUTBd4jaFar8DOQ+JW1OgSKp6IipuqEa6WuvG3va\nrpdVTqJBoHmCAztGA0O1y27WJ7ihcLnI8dz8NfpFjvbbr/IwdEA4rudWKxIa\nmjmXDbH0CKOZDov7ZDFtBUBgQE2mf+rxhIHvvMLKt4iAA7kRMru/YpnrlF3o\nxOeV2QnWusQYylZZPjTPF1HXGLuhxLiM0IzdE28I5hgQNakhoVQHTrxkH5yV\ncis73i9WZzRmXYFRKcR2tXqTiDgjf9Ga+TOuAA/FadaTp98PJFExsaF8XPxe\nXsrlmTBOFkVaoTuTyyhQ0Srl7PFWoe+fHMoeCHXYRsRdpk1ZdFdTKAYa/iYI\nHb7GE+RbiXDrgJ65OG3bptjYwsnr4beguPgaAvG75nTMBpjGzUgdlahNTLeZ\nQeBf\r\n=PSFR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/VoZUEGdK3HLkyf5iZ6LioLZ5aTK4WS9H64jaH5bdvwIhAMpWxuKONFBunipQbnmeOouqujU+JNu0mDIXk1P69pxX"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.8872b17b.0_1587674482561_0.0869789181297258"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.eca1a610.0":{"name":"@material/mwc-list","version":"0.15.0-canary.eca1a610.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8540808be.0","@material/density":"=7.0.0-canary.8540808be.0","@material/feature-targeting":"=7.0.0-canary.8540808be.0","@material/list":"=7.0.0-canary.8540808be.0","@material/mwc-base":"0.15.0-canary.eca1a610.0","@material/mwc-checkbox":"0.15.0-canary.eca1a610.0","@material/mwc-radio":"0.15.0-canary.eca1a610.0","@material/mwc-ripple":"0.15.0-canary.eca1a610.0","@material/ripple":"=7.0.0-canary.8540808be.0","@material/rtl":"=7.0.0-canary.8540808be.0","@material/theme":"=7.0.0-canary.8540808be.0","@material/typography":"=7.0.0-canary.8540808be.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c2d2c958e6704a2df0a1a210e3c3d050dbe7a50f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.eca1a610.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-9vt8Lf79TZGH8LNHKnGVWEOcQMXAvNHOCocMGQxg7ETNJqUx4XHQLbLlrdhrycrhK/NOntlmzIsrLRSEII2NEA==","shasum":"a12677b041693e4c2b496b2d06020f5e6c36cf6a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.eca1a610.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeogv8CRA9TVsSAnZWagAAXzQP/1wYhETFMAqn6ufUd8iq\nRzSYFFCJMk7QS9HoYFY0DAHqc7zpErkwH0E9UoSC4/nAg2qSNSXePMVtSVHk\n8ZVuMDQMUixPsyTpYjSgRug0u9oUoX3zNPl9j/x+gH9BiQDM8z4I3kqJ9l+T\nAvyWfC019biI/81pSR8TImagnN9/5Of3k6uQfQaC2R141RKqhSpTB3I2xIcp\n1FG72690IhbmkEJZrhEaXC9qr2u5CBCsnM8co59BAu46oOQyc490FQF0X71p\nwIuGZco3ETBfm+idm6EUHay+AUXmc7o9zEjLL6/z2eeI1yCbO/B0VPDqbirX\nUgJHwLPMH/4UabuCwuf7qolgtNEg0YIUOX1zdVQp3tGkngotfVXf4fGSPYAA\nxNViDfLF9Y8yJNsU5V37dVKbyReFY/QcXDHt9hBw8nXhaKnDkSr8w8Jyk1m4\nAquQQ1UIYvgYdTKqX54oTYegUBrZGs9jJpSKkPeH3k0IJT49LkUy1qT+Ts2T\nb7FwvKNjeOeZVTMHZ7pA4lRfnrQbIQ+XzODG/r6q3vGJAE7f5UNAuEWEFRAP\nnWA7kX9ezGsEZa2B9IDxKjYyxtfMW0XTMPw9KnQ+dFTbNF48ckrdoZn60Iyn\noQbjzHLRhoIOC/t0tzKMQdwVi+1/+j0Bwr+F3WEsilVoXVjS71BRoG5oScrw\nWEsh\r\n=UzfA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDo/exk48cr/upVvY0pG2KPTMH1lKK/jLcw8Z9iRw1AEQIhAPRUHjrnhfIE5y8p/LcZfcexCSqnwyW7ME7CEFQyobmd"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.eca1a610.0_1587678204108_0.31682062541500766"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.baaf529e.0":{"name":"@material/mwc-list","version":"0.15.0-canary.baaf529e.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8540808be.0","@material/density":"=7.0.0-canary.8540808be.0","@material/feature-targeting":"=7.0.0-canary.8540808be.0","@material/list":"=7.0.0-canary.8540808be.0","@material/mwc-base":"0.15.0-canary.baaf529e.0","@material/mwc-checkbox":"0.15.0-canary.baaf529e.0","@material/mwc-radio":"0.15.0-canary.baaf529e.0","@material/mwc-ripple":"0.15.0-canary.baaf529e.0","@material/ripple":"=7.0.0-canary.8540808be.0","@material/rtl":"=7.0.0-canary.8540808be.0","@material/theme":"=7.0.0-canary.8540808be.0","@material/typography":"=7.0.0-canary.8540808be.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4f5e01f380a9f1e5d4d3b0294d5110692bcdaee6/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.baaf529e.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-goJOYFQwkr9BChgvPZpgqq8SEXedTgpNxUV9fFNThzOD/Yenp0tdjhUTTq4ycv+laMWO+qphdiexSEc6sfxqxA==","shasum":"ad962552db337a3086456308cb91e2ed796adad1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.baaf529e.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeohpbCRA9TVsSAnZWagAAzhEP/jqW8cdmqpb5HtNOKJGa\n1QdVXtZoXplTAN1ITiGh94E9xMGnBoAVJITA9rAOhyJYL6nOmn6XatdetxsJ\nkBi1GrvlL3XUMBDNxS7/HJnLnRXV6o03rw99ONucposXEV/JH/uPWvqQVrnS\nj8ZRfTOOOUBs/zd1srE0+YrXQ/wt6Zp5qgt/9vjhUWF6ldR7rtfCH0CkKkmp\nDbk5xa2Pv3kOoxqwW8z6HDub+3IBowmOGueovvLeMkeHhWwJ1NJK4s9ECKH1\nKJnktESNWKmG1JbgkRryxASVv1gjmn7YhAkcTX9Cz1HdqxuXagiKyRmLnLtj\ntL7u8UCGscohU1YGNwClBGHZqszuqCsY73nq48reFqeNmpAam8nhwL61pQAm\no8inhU/TvYRMW3Vdm8/qpqw5X/3G+uHSnm/hGEOhA/29YPZMufiAVJBhVBAS\n7ukfIFaD2PtvJxE4gU6A8EcsCXWOi/AY8Lmcl7OYGVXHxBVvWA/9yoQPnuqf\nQjA1yuJhOzGkVYjQAb0O0nvXY4+u1FpdruLaTHh80EAZWn7DCOQ2uh/qMXwg\nWW5IPaJsEbflJWe+NrCZou2Ar3MkmtyK4tzadMUItt6uzJBju/usExBEalsR\nH/om8+qZ7c1lhE5hMmDh9mN5LRJon/u3M8knbSyPJz/bDXlPM9ygik/468Ba\nay1C\r\n=QmNV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDc7LJeZ3W7WZTCk3BSJIfXPuXmWMDduRDMmYycmSgzBwIgEz2KkpXyYw6449m1+kmnBYrlmbP2aCKLqExj7iTeiWY="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.baaf529e.0_1587681883204_0.39851174677653733"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.7a7992a8.0":{"name":"@material/mwc-list","version":"0.15.0-canary.7a7992a8.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8540808be.0","@material/density":"=7.0.0-canary.8540808be.0","@material/feature-targeting":"=7.0.0-canary.8540808be.0","@material/list":"=7.0.0-canary.8540808be.0","@material/mwc-base":"0.15.0-canary.7a7992a8.0","@material/mwc-checkbox":"0.15.0-canary.7a7992a8.0","@material/mwc-radio":"0.15.0-canary.7a7992a8.0","@material/mwc-ripple":"0.15.0-canary.7a7992a8.0","@material/ripple":"=7.0.0-canary.8540808be.0","@material/rtl":"=7.0.0-canary.8540808be.0","@material/theme":"=7.0.0-canary.8540808be.0","@material/typography":"=7.0.0-canary.8540808be.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"b9b74b473b6026badaf980339f4451efd1a9e8b7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b9b74b473b6026badaf980339f4451efd1a9e8b7/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.7a7992a8.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-TCSkROLqfaSdQlRpMwrtkVPtC7OgFb4ZmN27Do0xHruHf7nMxuKLntqHNa/g1cVoa28jN+fsmmAwZXVsvmUbGQ==","shasum":"833c30171ecc29caf2aeadcaa13d46f9cbcf0ae2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.7a7992a8.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeoiFjCRA9TVsSAnZWagAAI5EQAKJg0CCF0MrjsqcMxGgK\naqJYlsdyPfp5b1Gc3WdejAn6cstY/tvsD/HhP+ukW++rY5/VyCTYxlEDjl2g\nBNPZB7HVZYewL/EDkItkCoNaqKirRHBMiEgIMVs1OezbN6GIwudralC4dkyt\ndpJ/7T0dmoQe56+BZ5SFQImTwMeSyRlzXi3hgRqSz2qS1ciFtDiUbrNfl4rU\nQSSFuLOBpFmrgklO6dnHS9KE+gT7DtHoCjFhuyczjpauP7kKvNe3o9htRQoQ\n5fd0Q7JkSF8TRHefxZFGIQN3xAwio8gEqTYjVglZV7+zl/XzWSQPZO8Dtras\nAgBmD1zWSkmIqPAuBp4TxSiS22spMibC+ftFh8QX/p61hJEmcGUlB9dwm1vn\nrSoP/mC7ffjAF0s/L0e97ctnLorEyWtPD0MVI1W+/OkNxlcSrPbWAkvrzw4X\nRTc0edQuuV5Fg7lpeKdlCD01F8/Ix3fFM+Xe3Xjmxx7x7Kbjcbm0cPYRM+mh\nVCoQNtWfWcQl7sg/Dz0QX6Z0Baf2uWi9+Pfu6y+//Io+Id6ybwfGWSDp4KHr\nq0rfzlADOMRKPo9LzQqQfcLaAa0NqkmjA6APVVQm2S8e19QEJ0sx5qA7pyqb\namgqXW70FL73PcpJviWI0KNsoPv7JlLH3mCbioS0DDN2CIaeee8CdISIdnC6\n3w0/\r\n=9WgU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICH6DMtAKrSvyZD4VQ/W/+gOgrrZRU2eypODwmL6TiYcAiAglxDT5rXNIJNK37z7P2QLwsktwt3dR1K5WCggz1uNKw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.7a7992a8.0_1587683682977_0.6627242584036113"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.1150d64d.0":{"name":"@material/mwc-list","version":"0.15.0-canary.1150d64d.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8540808be.0","@material/density":"=7.0.0-canary.8540808be.0","@material/feature-targeting":"=7.0.0-canary.8540808be.0","@material/list":"=7.0.0-canary.8540808be.0","@material/mwc-base":"0.15.0-canary.1150d64d.0","@material/mwc-checkbox":"0.15.0-canary.1150d64d.0","@material/mwc-radio":"0.15.0-canary.1150d64d.0","@material/mwc-ripple":"0.15.0-canary.1150d64d.0","@material/ripple":"=7.0.0-canary.8540808be.0","@material/rtl":"=7.0.0-canary.8540808be.0","@material/theme":"=7.0.0-canary.8540808be.0","@material/typography":"=7.0.0-canary.8540808be.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"0b7cb5830938900ecd0b5201ad88746d308b91e8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0b7cb5830938900ecd0b5201ad88746d308b91e8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.1150d64d.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-xvFI6sMz5UviKc362RckbwigJwvmP7Yca1qMfAUQvS9z1DySHL7Co5BgxiJdpVxNFzXauDdNdoOk5Q2ZniHriA==","shasum":"17f0f4f8d234ce2040ee898230a19c13087f4abd","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.1150d64d.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeojBzCRA9TVsSAnZWagAAvEMP/1ctF2Y7YvgEieG/Hxre\nXWpkB8/ypi08ZHJlklLnL4BTjYdiOH9Nz+/xWeHkDCjXo7bztArk0SuFDYFT\nxOJUId5fmbxO1tQGTALD9XOcV3P0NFu9LKuNz7dIOmkct3jEG3Glfoib9rmb\nUWOqB+W7HAxsceopGM0IsvBEmQRZuel7b9lfZlsrexugnmz16x+CceGtk8Qt\niW6kwzQOFSHw8YghJNiZ13aCkUH2d1nD8adZYJKYirMcO9fC9NtFs5HLOwNY\no/IGtKDEcPr6MwZaU9Mhwy2yvFpf38GJZaV/7KxNN8nKqhlhgW9PWo0Luj4q\n2MhPn2stg9q//1u48IgWfVk/WklnxFKPfRewWyaN9JP0vUWeXmbBfr0vOUXr\nGxuy0rQuHJGqcmfymJ603fJrEdMN8/joklhN4X+8nhu797QLqJRTOL7boi8t\nxv+zAlcPqOgvXGXYer7zcAkGNxaXAJbRupKQi8ksfEuH/vMbd4wwXsWeyHNz\nh8F2zztTVroLrVLFyadCZKiXenGi32NKVCgEh7xRnurs/S7kmbERA0fgZRTi\niECC+0zbYCIJ86c3DasRfttAKbYWn8+ZzlwtQOFYTLZyCrIiN2fbzpkjYdh+\npLETopYRmUi7CVCVyuZg5JBgo8koWPMnAvjjn0Nu0AZ2X0j54tKDieNqDBHA\nP6EU\r\n=eyCw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCa6E35MkpUnj6TKz7JCLNIFjQteXK750R9q3NZ8BBHfQIgFlf+tzzc71zavH2i3dk30g3qD7fvqnmlkRSGa9RjDq0="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.1150d64d.0_1587687538583_0.2869080199808862"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.dad3f828.0":{"name":"@material/mwc-list","version":"0.15.0-canary.dad3f828.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8540808be.0","@material/density":"=7.0.0-canary.8540808be.0","@material/feature-targeting":"=7.0.0-canary.8540808be.0","@material/list":"=7.0.0-canary.8540808be.0","@material/mwc-base":"0.15.0-canary.dad3f828.0","@material/mwc-checkbox":"0.15.0-canary.dad3f828.0","@material/mwc-radio":"0.15.0-canary.dad3f828.0","@material/mwc-ripple":"0.15.0-canary.dad3f828.0","@material/ripple":"=7.0.0-canary.8540808be.0","@material/rtl":"=7.0.0-canary.8540808be.0","@material/theme":"=7.0.0-canary.8540808be.0","@material/typography":"=7.0.0-canary.8540808be.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"ba9b04a7b15588d7423d100bbf29fa317a1947ff","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9b04a7b15588d7423d100bbf29fa317a1947ff/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.dad3f828.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-QbzBzROSOrrVutlRIxTJQKAkDpOywSY9E/uhwqARbJ88y8v6WR7+eUktlzHU9p+05wuf5NZPcaKs39woQ/CBig==","shasum":"7e6bdff78ee66d9126c9ae793b9293f0429d1911","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.dad3f828.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeo4eZCRA9TVsSAnZWagAAvAAP/14xemPyTqBR6guiJx/+\nQBtYNQlq3QoZdSNmb2lovoYDH9DGfWpXsUukUEuvnp54DgI7UK3oUs56nnQC\nIbAPFU3RTU9ErB5gSg8xH0gsdr0Go2YbFpxYb10wXFBr1ncuGa4fCOEYFWfU\nabw2cZuniSLzI24YMMZN6NwQmd3gXV1rdW18c3WbzS0O1TUUCq/mwOVq3UtA\nPBg6Nao3dNLKhIGEgRmY4l8EHbPjsLtcyTl9Sft66pHyTnASsjnqfzYxZ/gO\nuN7UvEIOqdbF6FneQBD77A/jDmQcRHSVRP/hkMzhc7Nhhfu1wj7+ReBQESWC\n1m/yGeM3vwPtIfPiqdHNATrzaLMJfvcPFEy+w4cHZTmngOGqIyGRMNMZNyfb\nn1jDy18ZXCMdwiMDfzZcEU1asWD1wHDw7qrDLqMLvAiPiEAfoAWKt5wFD6RZ\nvpeomnPvMeoxSLhT6xcOK9vL2AWqSu5WAjpaMEjUusO/Q5iFoETOM9zKJ07P\nWJ40N7YOv1mZJh7xSGXcTrt2dB2Un+FFo/yRKfKBQIFSn1//oUbrYjRG3BI/\nJayc5CnOC/EwL1WbleFPDc0znMfVZFvxKDf2jWSx5JnMwBWxpQmUWmQpyM/j\nYhdLcB2PENPh3Xejc762e68bddjUxgFLTmojsieu5u1iejFzVLKNu+5R1nc7\n49WT\r\n=9nN5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBkhkZwlGSwOovZYHNJ9L2/Z1TQnrGqlQd+Bl3g08nQEAiBpZ6zkHTrG1GziDJzpnzY4ubKQqL7zUy89vFJnSyafow=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.dad3f828.0_1587775385541_0.25443615061422653"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.1bcdb47e.0":{"name":"@material/mwc-list","version":"0.15.0-canary.1bcdb47e.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8540808be.0","@material/density":"=7.0.0-canary.8540808be.0","@material/feature-targeting":"=7.0.0-canary.8540808be.0","@material/list":"=7.0.0-canary.8540808be.0","@material/mwc-base":"0.15.0-canary.1bcdb47e.0","@material/mwc-checkbox":"0.15.0-canary.1bcdb47e.0","@material/mwc-radio":"0.15.0-canary.1bcdb47e.0","@material/mwc-ripple":"0.15.0-canary.1bcdb47e.0","@material/ripple":"=7.0.0-canary.8540808be.0","@material/rtl":"=7.0.0-canary.8540808be.0","@material/theme":"=7.0.0-canary.8540808be.0","@material/typography":"=7.0.0-canary.8540808be.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"ed51e46ae11b69727c91d55f440b68af397ac10a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed51e46ae11b69727c91d55f440b68af397ac10a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.1bcdb47e.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-eyy0eWetRVaLNbLp0OnFE5ZLr9FpU/7DNBsnDmv8gPBU3TiE7KCeayta18NQYMuu38JSJGpP4WANYRIZvTayiA==","shasum":"dd928af4ba594aa0846efefec602d51ad3924348","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.1bcdb47e.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJep4MdCRA9TVsSAnZWagAAdVwP/A+qm0h3efbJys1yM228\nNg5vqJ+9doKzZdfY4+O6OahxToo/OswOK8IlATm03VaszCIraD9Wwb0b7YbU\n4X0EUvHbQNh5eYTHXpvQWQsOXPpZaolRUnCAkNtBjyMFnqLWli2WiiZobcmK\n7t9Ti0pnj8F7R2C1NfOfXdgw8mZICZsiuUkWK7E56Jl4eTcgxPTzISl1UylC\nzfv4dgq7FenqQPYr93OebkfEQMtBfs1bj19c12BcXLlKyaoic0gvTuuYdqaB\n0xsSEnPzTgSyuW9HRwiZlmSq1o0DzcsgR5aaJY8AAQMEwSb12cDMBokCdIwx\naJHK1IzNsU/baj1Dl0HDWpTbG3apFhQLryeVwqE2GHa+CsgBz1IMw7JnkxKt\nodTpQhM0NTzEVIMiqtRJp/7Sjzi1pu/8ZNz0SDMPoGatuB0JudNqxzIAMmUq\nDqii66oP0xRo4QMMEKSCCPeSwzbU1ayw8qbNxuSDjbB3/a8w/iwdctonE0EZ\n9II164MV3QS0tjVGmh12xzpto71r13xTWC3VCEnKhbmt9s3Tg7IJZ5I2X3xU\nyyBQmHCvBSvVdmscx4bokB7NKP0PVgkuZSuFDpGips2/OAc1DyWROu1noSUN\ntIAfqMsknuj1EYy3CoKTzrrDgWYYHrremFZxosq7ZRQXzylazECI66lcb7Bn\na/hz\r\n=p2M5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFqwHFyM72hVU+zcoDiN/TkRra8RTXaxGd2+YoHltofuAiAWnpaT7QIC89zmbTyOttovobeXyQi68fChnxeixIuvPA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.1bcdb47e.0_1588036380848_0.5799330937449689"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.86ff1b9f.0":{"name":"@material/mwc-list","version":"0.15.0-canary.86ff1b9f.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8540808be.0","@material/density":"=7.0.0-canary.8540808be.0","@material/feature-targeting":"=7.0.0-canary.8540808be.0","@material/list":"=7.0.0-canary.8540808be.0","@material/mwc-base":"0.15.0-canary.86ff1b9f.0","@material/mwc-checkbox":"0.15.0-canary.86ff1b9f.0","@material/mwc-radio":"0.15.0-canary.86ff1b9f.0","@material/mwc-ripple":"0.15.0-canary.86ff1b9f.0","@material/ripple":"=7.0.0-canary.8540808be.0","@material/rtl":"=7.0.0-canary.8540808be.0","@material/theme":"=7.0.0-canary.8540808be.0","@material/typography":"=7.0.0-canary.8540808be.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"61a98a59545d9e0b0fd96c928737677f2b981fb8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/61a98a59545d9e0b0fd96c928737677f2b981fb8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.86ff1b9f.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-VWtgZbotBPji1ZLlnpN6Ra6Pp/5Lx/naXY5U02fswbFdUKksDsouk5e8lZYywxijF6e/yORapG51fDh99I1jgA==","shasum":"bc19cc9f60d72a7b116f24ad8e701d66aa2e98f4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.86ff1b9f.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJep5tFCRA9TVsSAnZWagAAiL4P/2dZFWgvcLXMu2jp7r0n\nhl/ylWXNO6WwTPyVMXzA8LvabP4CxK8CjMY6xmlbYCSb5hcfmR/sKMeeOZNU\nxxTWm3KATnLtiHB76PSUBrw5MFcsIntNvytZQZRD8rRg+jfe6+SPvtPag0Qb\niAYSSa7YcBCQp69U8+1GivuNw5PVWZSEK9GOHT+hPli14sru1//Sbku1jdUN\n8ZLI7+VL87GyuVVqaVFG12xmm6AJY6w7AitfJ4U8SGFR8G1foP/f/BcwJXVz\nmds/WAdtByYRM81IfHti9MWdTMLF26pZHuXB1zGe3dubLEVJP+x3Pq1TT1R5\ndGm5Zb18HFNWBCFbfq8uHWS0ju9XVO8e28B8jW5dClVed0cxjp/PIcVv0peO\n3DsTPojfOAaK/avb0QGo2ASqqxt4K7Fz74ewK0VOFiziF/zUq0Qfbho4WgWA\nSns/QNOSeu/9AbM8YUcNSSKfavPmAy71KBtwfOy08ZbDlklAHSpYKQxc3xcg\nz8GOnOpKSGYIxxv1qYzTlyoMGlidKPPw/Kb+YBLgdNSLhfVQicS4FZmi/Vl5\n7fC07nCwnXGojilol6pUGQDNG1wyINuqFsB5aGDpbPBN3mke4hvtFf5awM3e\n0iD1ez+aXQCsNEmrdtPuWEdxqMMdHMmyOxziNguvZGxvqyegy3v+y6B0eOsn\nvm4O\r\n=Kpwg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQChkD0xT9EsHMF+H5eaSwSf2WrVAkCB65OR6csc5jccMwIhAKUKuCo9WzwGzWPTuuYEr6x85EOE+fSU3vTvNfp7aTtj"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.86ff1b9f.0_1588042564943_0.3777440976932116"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.54a86b20.0":{"name":"@material/mwc-list","version":"0.15.0-canary.54a86b20.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.28d32f8e0.0","@material/density":"=7.0.0-canary.28d32f8e0.0","@material/feature-targeting":"=7.0.0-canary.28d32f8e0.0","@material/list":"=7.0.0-canary.28d32f8e0.0","@material/mwc-base":"0.15.0-canary.54a86b20.0","@material/mwc-checkbox":"0.15.0-canary.54a86b20.0","@material/mwc-radio":"0.15.0-canary.54a86b20.0","@material/mwc-ripple":"0.15.0-canary.54a86b20.0","@material/ripple":"=7.0.0-canary.28d32f8e0.0","@material/rtl":"=7.0.0-canary.28d32f8e0.0","@material/theme":"=7.0.0-canary.28d32f8e0.0","@material/typography":"=7.0.0-canary.28d32f8e0.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"8cfd732e72200c6982fa6d6fbdd6cb5496660a6d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8cfd732e72200c6982fa6d6fbdd6cb5496660a6d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.54a86b20.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-oKW9uMPAkvpnBOLLXif2dY0RbC8lKWeiq54pbqBbz7UkzGXgZcHI1aoOmYx4z6ORekbQP5Hfocut9hZdKVuY2g==","shasum":"c9e4c617937f001f1e9297b23e7dafb59ef27251","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.54a86b20.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJep6CACRA9TVsSAnZWagAAQfkP/RT7LTRXzzn61AKmbdoy\n36yeXudMYkXE6r5vWsbvXjxXfZKAzaSZRxCH0wheN1IcUMcY5nx4FVlS/G9K\nIBTjjW43JMBdLVmZYP6FzuGyGVpJpV6AZmFCbYhBqClNbQQV2h1G1gXoNxgl\nNypb2hcuR2NNmFychqneEoFku8s+0iXdic5P46huUNqUWAxL2P8h4zg6wYeV\n1qToCSkLPsfovOfYY6VDitv0ZsTlPLyLRpjWT4edHFILkJ5eaZjRXaPEOAa3\no3wuTpep7h1bOyetLQJyX1MKGjZr1U7t3ONU0pnVBwlGCHp0mzKxpdtbIsz2\n/eUBJnQxsXs0gMgZFv9HTQR1BNDO26cCRPsdvUQyjPhWtxjQc55JrDyA1KTp\nz9KwmQ6wYcyuvQMTEqWUqL2Ipl95sdBjmMuewhRO33/zR9x2CpWAc3U6AOOo\nJsF0jDtnci8Md4x1jiHbUcs/BFUngZWTUzD2AWUwanHURbYPtpdGASpmEQB2\nR/dCecYWnpxwsTbYfQ5LjNpLjS2m0VJkX/wgDE8z0jemKLas8N0gHM+PU4c/\n67/9W5juikGcZ/90htng3ARw8GRog57+Dq7l0odrfzyXI8rBI/M8/p7Ajumc\nkBOSBDQVksUUYrNmMXI+1dzGMwdXQnRfG85rbe9HlgvDq5TjnzeGAte6UPAk\nSK0d\r\n=P0sy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQt3729sruKtTMTjPbOye5iL8iK1fmTIkm/jLHgNbjSwIgGYVgt2D7fRVms5BeiVJRKC3DV8vc4P2Ci4+eHQu7XI8="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.54a86b20.0_1588043904168_0.757455894469977"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.938fd24b.0":{"name":"@material/mwc-list","version":"0.15.0-canary.938fd24b.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.28d32f8e0.0","@material/density":"=7.0.0-canary.28d32f8e0.0","@material/feature-targeting":"=7.0.0-canary.28d32f8e0.0","@material/list":"=7.0.0-canary.28d32f8e0.0","@material/mwc-base":"0.15.0-canary.938fd24b.0","@material/mwc-checkbox":"0.15.0-canary.938fd24b.0","@material/mwc-radio":"0.15.0-canary.938fd24b.0","@material/mwc-ripple":"0.15.0-canary.938fd24b.0","@material/ripple":"=7.0.0-canary.28d32f8e0.0","@material/rtl":"=7.0.0-canary.28d32f8e0.0","@material/theme":"=7.0.0-canary.28d32f8e0.0","@material/typography":"=7.0.0-canary.28d32f8e0.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b731aa2e74a3ad03e8d40736e169d0bebc8d8ac/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.938fd24b.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-aMu6jdKtYbCir8sU2c333STkGHAZInq8l7n2uh4rm6EcjRSrveBXPCr85E8ZIe/dxsWznVDWt/GYf74HOPxuGw==","shasum":"9560a2400836292a79f0b6f462bc5ab5cdb2b9e6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.938fd24b.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqimHCRA9TVsSAnZWagAAQ8YP/jX/ezJ6pL4YXE5MhFET\n4PVDeuRcJ5gvjFmZFYbuSerNLGKE6LpiAuo5d4Il+Ti/R3B+3X346q/LpZGM\nttY7Unvs89CZuZ+djDNPw89CaMNVXIHlvSG2sF4W3sNbToR3i2E9r8OWC7fr\nA8mbJC8rh+30OmEFk+55iYA8EJFvxUBUwLJGAopapUgdGT+b25ydge35348U\naFf48U8vtmcG2N6gbPcicbNMmkaUdy+lgeEeOQcCaMjfTYDz55f1riWT/Wbs\n0V4h/z0JghpugVCM/fs1BGds/tNk3QBk+kj354RQh74OAYpZca5lvewl2gu2\nw+gadoksHe7jNBcqwg+U09TNYK8yqNVLGu9CaevUUdUJFzCGslSJay85ATO6\nIZYGsu8GNurvCls4iAzp4ntuqIym/aiWZV7xzgYKuBIAHWLB/yzQaetQvcN/\n+AODtK8vTarsSBRGlM/u2XHbMDDQs3/Sid2owOxdfWNcpAi4PAfb0VoHGVsY\nJ6RYT8TXtXyLzahA+K42XZcP3f1FQ8EQ77ZdMen0Q5FtHYk9l/S3ok+SYPRH\nXm8GJL0WvCRV1NrvOSm/qE4zoB7yF5kYokqS5YLiGgfmtRgr6JO7pb4eaXl6\n7H6J+Ci//wrBILsE3B1TXT/imjU3lkwp2nH0l/CU49Q9xcU8nsOey4yw8bec\nr6YC\r\n=ikdC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGbV470Uk2i/Nx6ZWxo7ZiYuRumudvcq0/x69trx2UevAiBeo2dRlkvs+K3SVmvFhtUxcFwJeXUTeVYpcMWHIsUf5A=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.938fd24b.0_1588210054820_0.22706570250778557"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.39e9a008.0":{"name":"@material/mwc-list","version":"0.15.0-canary.39e9a008.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.28d32f8e0.0","@material/density":"=7.0.0-canary.28d32f8e0.0","@material/feature-targeting":"=7.0.0-canary.28d32f8e0.0","@material/list":"=7.0.0-canary.28d32f8e0.0","@material/mwc-base":"0.15.0-canary.39e9a008.0","@material/mwc-checkbox":"0.15.0-canary.39e9a008.0","@material/mwc-radio":"0.15.0-canary.39e9a008.0","@material/mwc-ripple":"0.15.0-canary.39e9a008.0","@material/ripple":"=7.0.0-canary.28d32f8e0.0","@material/rtl":"=7.0.0-canary.28d32f8e0.0","@material/theme":"=7.0.0-canary.28d32f8e0.0","@material/typography":"=7.0.0-canary.28d32f8e0.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"2777862aa4cbec00918605f0726651658a2c66a8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2777862aa4cbec00918605f0726651658a2c66a8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.39e9a008.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-mfkSVgeDrWhbXrcn/RjIQQu2fif9ZSJ9oUgXF++jYOIui9LGSkdUx0aWAwSuTWxtWZ04j5jISPh5bzZ/fsJJQA==","shasum":"39aff38392ab66199013cf49cc253d9be6d2434f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.39e9a008.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqjRfCRA9TVsSAnZWagAAlAMP/iU6zHh8VREdVA75M9eu\nuVN4561fZjxePLnIGSNebtmJIW0SyZhzFKhi6Xqdg6bxWRx+CK7JQfZ/JLXf\nJk60O3oRLxSy9+Roj7bZ/qTmi73qgeUBowPIMFMLR7YRkMGUMl5udje9xmHl\nkquxodXTaEZPcDp8UgqUqokL+VJI9KNNAbkYRy4gpWW6PDBfAoVlyugKfn4/\nwFNlrR/vPKmFRJ6alyMcNMNB0cIiqK4nCOqrZV2rTk3bx9u2jWuePlVsrZN+\nrMhApCmb5p0cxP61Uq4hiD8kADz40AWKeE6FvcLWMukLZHNVSYgLppUp2gsX\n1JF4E67JqLf7s03rFSpRg1s8mZimaLPd1HlKvBFDNc2fsNK1gWy0xUV9qynS\n3dpK4vhUW/1W0BsrNYTIhiOjvxN0Zf2bTqTXJfGl4ojFbHTevNuUB9oeUjOF\nOeLTwOkFym1L3zRLrQERGz82HO0qnwnvHFrMhLFkdyup+QdyteelI4ogvI6C\n1UYaDdX5kB2BxgDSDE6s79V5LXnKRY0L6NEtBWCi9ShiBY69C3xYA6cWfniX\nH3mnn5RFzhRUUkRlwCoL7UgSv+94HR1KLWPqgNtGWC+AsdRXQivrxTOPUy93\nyt3E8LHDzdQJtQfYTRrz1P+KlqejYVnixprQFYawMqybtAy1y0wEH9qt32ZG\nvkwD\r\n=Loea\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDcGyHna1xUNeI9ursSIK79sRapXxPWiVVyGZTJM7sZHgIgRraIoQDy7Dcs1xeqt8O4xr5SXmi28Pf9eHqvyR8Gvsk="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.39e9a008.0_1588212831270_0.8568784472477546"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.f3b365de.0":{"name":"@material/mwc-list","version":"0.15.0-canary.f3b365de.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.28d32f8e0.0","@material/density":"=7.0.0-canary.28d32f8e0.0","@material/feature-targeting":"=7.0.0-canary.28d32f8e0.0","@material/list":"=7.0.0-canary.28d32f8e0.0","@material/mwc-base":"0.15.0-canary.f3b365de.0","@material/mwc-checkbox":"0.15.0-canary.f3b365de.0","@material/mwc-radio":"0.15.0-canary.f3b365de.0","@material/mwc-ripple":"0.15.0-canary.f3b365de.0","@material/ripple":"=7.0.0-canary.28d32f8e0.0","@material/rtl":"=7.0.0-canary.28d32f8e0.0","@material/theme":"=7.0.0-canary.28d32f8e0.0","@material/typography":"=7.0.0-canary.28d32f8e0.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"b6d6f6d4a289f46197727279f5e776b79264ae07","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b6d6f6d4a289f46197727279f5e776b79264ae07/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.f3b365de.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-sd5117CwBLiKHVhf0U6wMdMpyrWhr9Xkw5+uwkDqz1N+374Ti8Hj0Ok625EM6aIdmhjpEleTNUvUGk6Vtf7/DA==","shasum":"2a163d2af8360c6d3da4c448cabe75c438080434","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.f3b365de.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeqov/CRA9TVsSAnZWagAALPIP/iKt622g8F1grWYvSlWr\nRljsJQ+/+UVdLo8zL7oB8140AhcAQ2UNUsfZwtcGp53w+7FVYYO883JQ85D9\nxGqnlgonLyQgWyF7gt+E5S/JyFJu7bkae3Gw3nC7cfPlQjvaX+8UoPTRHAkb\n+OsvTXuCZkkbKDimaryu7jR3jYy0EpL1jpYrgu4Bn9sxfIRdjOWyQx47x3bX\nLsYQ8IWErcMMjxMVdjl57Qo2Ll7flC2V0y8XzpZdHOrvtQ3gmXLLsFdPdAgN\nnlbpgGXe7tkB9v3jxgcyiS4qdzsXONRmMA1ikDim1Jab4DpsG01zXrcqq3K9\nMAdTbfQE/PfEjJQrNhKEiWArf+f3RGL9Q2jwWCbE1sPGfqIdm1k7awE3Sppc\nvC3NYfHWkN48LyD8TwKxn/GIZ+6B4jCohtN1FII+cdak8KaIZ7Xdqpt6AHz1\npcI2kxxx5grdIqaoPeRhV8r4BldaU6c9rRbcFwfg1yIUWYJvdRTxRVpEGG92\nn1kjUXRLxE5/fuLgtssAiQf0nm2Eg9yQ/krXFSqIICf3H9TIWZ8SRaa0VCNR\n0eWMAJbbRPsm+jKFaMwPCfgVrLCqKyB5MAJcE2LQzVTyO/6GF1t6rhrP5utX\nG1EjK8YUK8todsl3K6RHHBR78jk8qqPIdO5BMpROnxfpOPbD28eKplLyfz9w\nkACN\r\n=DXbP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCVVdTkA/ZRq+hDXydAx6DM58O2pitx8897SL7Gjb4aWwIgHasFjwj5wMwxWtPC/mzmefznmRto4yKclx+cP/w7l4E="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.f3b365de.0_1588235262723_0.22270077524877818"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.cdbdf807.0":{"name":"@material/mwc-list","version":"0.15.0-canary.cdbdf807.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.b0f83d2fd.0","@material/density":"=7.0.0-canary.b0f83d2fd.0","@material/feature-targeting":"=7.0.0-canary.b0f83d2fd.0","@material/list":"=7.0.0-canary.b0f83d2fd.0","@material/mwc-base":"0.15.0-canary.cdbdf807.0","@material/mwc-checkbox":"0.15.0-canary.cdbdf807.0","@material/mwc-radio":"0.15.0-canary.cdbdf807.0","@material/mwc-ripple":"0.15.0-canary.cdbdf807.0","@material/ripple":"=7.0.0-canary.b0f83d2fd.0","@material/rtl":"=7.0.0-canary.b0f83d2fd.0","@material/theme":"=7.0.0-canary.b0f83d2fd.0","@material/typography":"=7.0.0-canary.b0f83d2fd.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"c46702178e5c5a1096937d4bd70ad6f4ac4d1dab","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c46702178e5c5a1096937d4bd70ad6f4ac4d1dab/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.cdbdf807.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-8BkWEtB6vbqAvGL53IzkmimWlGgaj83KS80Wq+/yPpwt2ccQWdESiuUX9+Q9BXq8o1tWOPoktfaBdQreuvZ28w==","shasum":"e48af21dc34b2715e86a30b058c0eab0de1da0b5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.cdbdf807.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeq2oOCRA9TVsSAnZWagAAcdEP/1yjZhGqYmzF/jC+ri1H\nDmhK1PRo4pzvmMHyEtO5SNX+NJwPCQQbGbr8f5z19Es3BulC+7v0bQ3RCaea\nEhypOvQ8kAY3NMQfHkDeGDxXqR14ixmIn2a2zJQ/N58GWwS4rwIepnnoiZc9\n42VPvGCQ58NriPHFXu2dGqkZw1uVBG4gDvcwdQ+YvDdfD5gOXE/PRZ5uzarE\n0nLMxpaOiz7uHzLVTl5mJ9/IDluMZH2pki/y9jycu14+gfAXK9iQARaJ4/hK\nljUrD96/OBDmNVpyyjBUqpvhrTKF71GKoMvknNqHZR5XNLqGMUjL+H3Z0A5B\naiyE6t0DRgsTMCaFOOBHTjdzjrfENAqeYPLXdmR9peIATl/mOQZAqaq5PPVM\nkMeNnUN0ssY4FgyhZVM6O6dJUVkw4RUMVmBQ/OHi1xhWPLcM5/RbFYTA/DPO\ntgtLnn5qtcil+c3QhhksSPhaPSE2IZOD4PEMvamaO0pjT8mtZ+zrWI/foVTt\nkMBc9AT4KX15n3PHIWMlHdDj8xrPmyRxCzONaZeCtTpY+LVcZ7Rw4GhAoIhk\ny9LTWAgjf1MAs/pa/8lSw+rnVcLlwPXi7iwbuCFQbD7uvByOI3sM+L9erQuf\n2oXye2DEJ5sAJmJQbbXcKFiwazo+HJgDw1H/1EGA1LOu0Lvm1stYGYgHiwjo\nzJyY\r\n=v5ac\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGph+hEiplBOO9OML8qtZGd9HMgaKg3eaMsy+Yo7AO7PAiEA767cySGlQkcLGT+bDkSY5XyIqWVOIeilL4dNuWQSdUM="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.cdbdf807.0_1588292110203_0.5190999315620157"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.9995ae17.0":{"name":"@material/mwc-list","version":"0.15.0-canary.9995ae17.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.e59906a57.0","@material/density":"=7.0.0-canary.e59906a57.0","@material/feature-targeting":"=7.0.0-canary.e59906a57.0","@material/list":"=7.0.0-canary.e59906a57.0","@material/mwc-base":"0.15.0-canary.9995ae17.0","@material/mwc-checkbox":"0.15.0-canary.9995ae17.0","@material/mwc-radio":"0.15.0-canary.9995ae17.0","@material/mwc-ripple":"0.15.0-canary.9995ae17.0","@material/ripple":"=7.0.0-canary.e59906a57.0","@material/rtl":"=7.0.0-canary.e59906a57.0","@material/theme":"=7.0.0-canary.e59906a57.0","@material/typography":"=7.0.0-canary.e59906a57.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"4d5bd8b757cc94e00dda1cdb19761b283a15eeea","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d5bd8b757cc94e00dda1cdb19761b283a15eeea/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.9995ae17.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-HypzYj5A6LMoKIWOb3z7cyUAtfPLtkeM+dnYlrx+rNanTG+/oEHghhJ4j362ptxcb2KIwO4GGK4MSqeYAmdgpw==","shasum":"96904ac3d86a4a255e76b7add50dc81c3a8ebbcd","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.9995ae17.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerG5ICRA9TVsSAnZWagAA05QQAJLR78NrOEODrVTffOdS\nSBWf3PTFpvQiWiBhbDb3Y/Mvpt2z7Byd9Ym7GMeqgS2dNc7ZGbkg0eRF19bs\ngAEDHB96f3XjMXGHwFkBQ+TrD6DAEWSgWdzpuH2pMs2IjvTsupMgYI20Uh3g\nxfH4Ei3FP1l/bS94hY51qxBh0CcRuu2lIOmtRgmEISw8P5QelvuyJldB2Bx3\nmy52Py0BedPzIS5aht3RfGoashL0BINdqTeT6SOFVgLPGDd1M+foiC8vlDmg\n3C7oS2pdnAIHGohl7nfbQtol4EK6P4yxmKF+ODtobY857kelKVjE7xdB+SGx\n1C9YU3dHDkbrpiExRMDP159D5gY8VKORS0X9wLzuyNQ2vC7dn9r9vGJb4D3i\nrf4eO0uVu8fTKA7QVzLd5uRDgj2oGAdpi9cKsZg4jPiJcmImYGi4MfClvgV6\nGk36g42gqsVb9NjdCemJgviR13DvkN58EnrQmFGx2GWceyh5Vy1AvArHiDpI\nHgEjezfpSTqJtN3DFg+fM+fbk9w1sZ9CpbITmZ+YRmY7qVWVd56Jjf2C5tZY\nmJ/Oq1DC0bUtvfhGMvD3PnJy71wn78H5sAZn/iCz1tg4TUW7N42ydFgnCvR8\nWVzhQuyTt+kC+FdVy483qDPdcXTUyHnNFc66OYA/Wa5h1sVStIfGbwANg7+t\nON3v\r\n=uHkM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDrXf2cI2aLLnk0DsUqApbHPE5KnQWJNgP8XqT+cx1NJgIgKdb39c5kK5A2EOU3tnTpS0SP1PdJ2cdIMoyKy2+VsjU="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.9995ae17.0_1588358728448_0.861471977114207"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.457bf035.0":{"name":"@material/mwc-list","version":"0.15.0-canary.457bf035.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.15d65448e.0","@material/density":"=7.0.0-canary.15d65448e.0","@material/feature-targeting":"=7.0.0-canary.15d65448e.0","@material/list":"=7.0.0-canary.15d65448e.0","@material/mwc-base":"0.15.0-canary.457bf035.0","@material/mwc-checkbox":"0.15.0-canary.457bf035.0","@material/mwc-radio":"0.15.0-canary.457bf035.0","@material/mwc-ripple":"0.15.0-canary.457bf035.0","@material/ripple":"=7.0.0-canary.15d65448e.0","@material/rtl":"=7.0.0-canary.15d65448e.0","@material/theme":"=7.0.0-canary.15d65448e.0","@material/typography":"=7.0.0-canary.15d65448e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"4174fcf7d0ec013419d2f97c6a615216cacd4687","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4174fcf7d0ec013419d2f97c6a615216cacd4687/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.457bf035.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-xagamb7JKmeoD05+hUqwUOssjX+0NhS+SxVDBU4Ca5UMuJm8xhnR4e2SmpqB8qziXunMGKlqvwZ4WNTVdlS4Zw==","shasum":"f71638addb182accfb73982301102f7aaec9e12b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.457bf035.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerIvBCRA9TVsSAnZWagAADBEQAICZLx7WaOd2slWswq7t\nfZqxjZcAYJgTiX3VAo189VDvKP9+iuw+f9PuXpkQWjQF6TOIV7o7pM3iS7ZC\nmWy/OTwP0my8a8PXTnhbSXT5OknD9bO/GQ0PHW5ZU/l12/0DT03gw+tc9+5C\nIQGt2lZIVkvnrTxIr0K3ooxpth6boaUL8JXtiyN7iveI4h+Tt70anuT0L5jA\nEhVFi6jirGnG57opVFoFnbgZ7rgqKDd+J+A6RaU0AsntDCrHt67PWd7uhEV3\nJs0VR8bF0KVyzIR3MF//M85e7XsVxrpkyBKej3OoPbOvUAAOkgohUZ3Wyamm\nevSD6eaBfnyZjeG7+hiUBgKNkwTscPpY/QHNhtryQv/INmgq9OaNxIIy8aVn\n6wr3JZBW1FbLgvHRrtPsok1ExZnckAl8B19aX6E5ED4nfRxdu2q1hCVTdcwc\ntOTuvlF6cpG1FDUgznmTvPPtB9wPvOB8kgSQ8vEhEd6hzWZGriKccstggSPQ\nUmiSgw4Y9T9GPAE6jzbBntiHR32y7WtorP68H/3zinAcLhI+4Gnc6LHbebNh\n65RJDJbwM9tmOlNZNEu6iQpjxdBVr6JuAlmrqEsbji+wChYyQQhKkqQtcAb1\nehD5NjKkEFVCF/NXdjWJYeqbkFsQ+BQbTiEC2wAwyzdQmNeDPu4NaAZQ4jdI\njXiT\r\n=RuVd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDUuv9bsRrTJVvT7NpGZTd4FRxgKmrahb4JVFzuHpjBxAiEA0UdrASDxNSYZhdXfYV6tSDUJelR3d+TNgUks182hBGo="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.457bf035.0_1588366272563_0.27598516224309466"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.2381fd02.0":{"name":"@material/mwc-list","version":"0.15.0-canary.2381fd02.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.15d65448e.0","@material/density":"=7.0.0-canary.15d65448e.0","@material/feature-targeting":"=7.0.0-canary.15d65448e.0","@material/list":"=7.0.0-canary.15d65448e.0","@material/mwc-base":"0.15.0-canary.2381fd02.0","@material/mwc-checkbox":"0.15.0-canary.2381fd02.0","@material/mwc-radio":"0.15.0-canary.2381fd02.0","@material/mwc-ripple":"0.15.0-canary.2381fd02.0","@material/ripple":"=7.0.0-canary.15d65448e.0","@material/rtl":"=7.0.0-canary.15d65448e.0","@material/theme":"=7.0.0-canary.15d65448e.0","@material/typography":"=7.0.0-canary.15d65448e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"4e8207837776c4f108fb86133541c49689664446","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4e8207837776c4f108fb86133541c49689664446/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.2381fd02.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-aSiPxE7BzxqTdhpClulzgHo0W0xDwERr1pb+6QaCUOO0TBO6W2pQ/EXsCtx/CGKRo3XJLF35j1Ss3XAgBbdY5w==","shasum":"837f84b693b0219da4197883452cec315bd72a6d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.2381fd02.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerJPpCRA9TVsSAnZWagAAJfMP/1BjakECFHUQS39+d2yE\nEJsphfHKZrSsRSN4TxfWI3Rv8vue9ASe+04QMhSytsoCOesFXKpHiWPFm7l3\n/s027JV15HLdfpdrD9XRJFjYMste3LS9WVFlImdtiH6K6p1AbPIR62eS+hjz\nEfRUfG+LfMTFsSoSC7DhPI+2ZPjkbxnKAS5kctSxwM2JYPyPGcurOV2U/G6C\nCbfQF0Apx4cQ2k74V4pgF9cumqcfpP+yApdbcuXm44qHJrp95jSWGhn6wVbf\nZWpKMl5teBavJ3Y1fwSrqYOHLEvaBBUnwIndw+4o9dvtQQzJw0Spi6Uf9oeh\nCD2N/EEbH91rS41u3wiCDeTiSXdGuAQvuD2JMbglyc6RXtKa21XLnpEC6cjX\nYEquti3B+4+t80Bd3waHJUuSOtediO3V7UGJbQUE3sNhvcQkbf0/4NJJEvcA\n8+/eUZFUIQrkyhSOHwgid17EuVyB1kUlcBClqIj3LSNAvpd5TqV3DKHNh+Xz\n0cBipKcVW+R/f3dA/QU6JtvJPyZ5MozkMtBCYEq1Chrta0iXZbUyqu7iNV4X\nOIW7rYscRw/JO61Il1kUnhRtIVHgWWVJwvCJLG/V31SHJYv/Ext3dnfNuaPd\nS40VnMrQTfDfZomAJ8t1C77U4pMHC0mG5GcySdSWcd5/alG+WUOZlYv9xFY9\n0jd8\r\n=/wEf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG1+RnJKzudQUZNdZMijEcBE3k7vu7ODayCOJ3pm4+2kAiAD6b2aRJLQfVhgiJqta0tMZ8IQLqa+oPMz/s6/VcpXng=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.2381fd02.0_1588368360672_0.23952763509389063"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.b2ca9b57.0":{"name":"@material/mwc-list","version":"0.15.0-canary.b2ca9b57.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.15d65448e.0","@material/density":"=7.0.0-canary.15d65448e.0","@material/feature-targeting":"=7.0.0-canary.15d65448e.0","@material/list":"=7.0.0-canary.15d65448e.0","@material/mwc-base":"0.15.0-canary.b2ca9b57.0","@material/mwc-checkbox":"0.15.0-canary.b2ca9b57.0","@material/mwc-radio":"0.15.0-canary.b2ca9b57.0","@material/mwc-ripple":"0.15.0-canary.b2ca9b57.0","@material/ripple":"=7.0.0-canary.15d65448e.0","@material/rtl":"=7.0.0-canary.15d65448e.0","@material/theme":"=7.0.0-canary.15d65448e.0","@material/typography":"=7.0.0-canary.15d65448e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"98f8c3a13f6577a5e1ccca480ffe483c91183a7c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98f8c3a13f6577a5e1ccca480ffe483c91183a7c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.b2ca9b57.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-oJaSdaVQ3s2EAxDLwPlB12AFReZZtkNrjIDE2c3eXf+tQoo+r92wD6XEE6fdM7p8uPinopo8NpJeHpIL9TFMJg==","shasum":"d6e60fc47619c7a9e77131f31650f27ef60bd7fe","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.b2ca9b57.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerJZgCRA9TVsSAnZWagAAQaQP+gL+tdZ1ef4JndPQPJzQ\n7RHuQxzK/Ft63KiTdSmQMlpvug+8XOpPPSE7+nca/psMcFbxray7LUGRVQHf\ne+YwqTUFQLCJTTs43Zc3/GLDpwum0ARiEXXEh88cnvJsMR0pD4tlzPhKXQS8\npOsEq7boAcP/t3jpVmviF6434kDYcEMcJ0LfYyGw8RRqlMgSO5kX4f2oFnER\nmPM7++QrZui9EbXCHLnVKTMY7CyBunvEMGaEdnwoNvs5zQyEuO1U1c4JiT/C\nxw6Io5RXSCSRJ8o2jMAK5zW08+ZZEf2vFMNfklVyxt7eA1+7DD0oe4dazKBB\nBADrB+tV20Ei5StAnKzUIQVDwkFiYoYXrT82bvGpuzdyQsZ+2BK+0AzUN2Z8\nhdjZqD8wyPkR6QgoGfgEYD5eooQduGWAPgw7WDE/K2TIORgVzrQFchSE/Txk\ndWNMaYe2laSq22i5ws/E8Hxzdy2vxocFcSyAWqSXJriJrxrzxZ0WMPL4lUdE\nb+xmzVBPm/2XHr3UhdlBUu0PyCSpzIEBcggCt3e6TWCaQqht5hfxRqdSfg+q\nlMri4eAkNmLESCVZS+dBcpSYxgonppfYM9N2aFToDs54pXFfmbBfnjCR27Yt\nVm4Oa1iVArkQiRkG7W8lCnunkixrHye+cEr8U9e26m57C7+SnyZGWAa5mk0z\n7d4i\r\n=TVLE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDNmENPSHddgHJ0P91SV5/n2uH5um0RXwbZ7giRSTzmgQIhANLWpLvVi7H3prAMHRvOGWW9RTtqKcyAieZ4UjdDY7UG"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.b2ca9b57.0_1588368991693_0.1630703842101826"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.b2b088e7.0":{"name":"@material/mwc-list","version":"0.15.0-canary.b2b088e7.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.15d65448e.0","@material/density":"=7.0.0-canary.15d65448e.0","@material/feature-targeting":"=7.0.0-canary.15d65448e.0","@material/list":"=7.0.0-canary.15d65448e.0","@material/mwc-base":"0.15.0-canary.b2b088e7.0","@material/mwc-checkbox":"0.15.0-canary.b2b088e7.0","@material/mwc-radio":"0.15.0-canary.b2b088e7.0","@material/mwc-ripple":"0.15.0-canary.b2b088e7.0","@material/ripple":"=7.0.0-canary.15d65448e.0","@material/rtl":"=7.0.0-canary.15d65448e.0","@material/theme":"=7.0.0-canary.15d65448e.0","@material/typography":"=7.0.0-canary.15d65448e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"c524f04088895074106127ef3584a2aeac09b189","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c524f04088895074106127ef3584a2aeac09b189/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.b2b088e7.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-BGrDeXaCaoZKLUjqCYvUS65OUfUIo8rsLJk0pSwisbqsksOrXmbK5SdS1pJP4R3v32HnEJcuSxfexO5udgVimA==","shasum":"f0424401a55e4e50491104a6a2928395584825d8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.b2b088e7.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerKPaCRA9TVsSAnZWagAATr0P/RYaottL2YLWwtMfCpfq\n3LUTuBDSjToy6bnH1Yeb1z83CK7TOR0ODa8xXum1Rn2kFnvp6wvMFyg2T1AH\nkZ9jrsFyfMYwOlYY4C4a6FqMH+28TUn5+9rEBdUFFanugRuzH70g7EFciWJP\n1Ct6rX+2BCuB9U7GZoUwllsafHuf3JYoYMOkn1RyhmRKen4zZDDHNMtmNXkN\nhudeQF9rn/83GJ753Z7DRSdh+StXM1egzwlRiXBWIwQLVqM254oSdDnse5y3\nH/nMysxHsb+SGN43HVFGniSsfxLR9XtgilJWzASwOHx/zLLG/TPafe196uRA\nWkBTduVJUnmgsDsuvLdDHeOFQF85zjcN37B20DVuUdFTTdB+m4ls7LuMU3Wu\nhFJXQ4pk+XPjQVGSBsGrnsXhgHovTwXJIp2B+ZnKGYW//8V14817jHu0mU9r\nvCa97uUYVcevNsIbRTBcUyYPNBNZejU5jJFO72npYISHwQx4TZ7CPs1H1sK+\nHzB7Fh5gSn7ah2jBZ8w6acL13svbJvC4D3K3FBNPxKg4BjNc6FOYZ/j9Wxfa\njhipI9YwGk+JcHv5l+zhYcJ8FfDdYh3HPoN9NUOkxyBh7YmkhFtQ46VHxy9e\nLF11cn+HcV5ucn6kJG8ZTyP9UdDt3Mh659LlyajZPK/0uumgH3LInioYoyel\n2yRI\r\n=rFBH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICiE5H6aRMD+fSbDQ2B6b2LsO38nZ6ubJ4WTowzS56qpAiAW5hZ85n82VKwf8gJcbsx5L6wOkJZX010ycqWwNfWvVA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.b2b088e7.0_1588372441769_0.20661971658914413"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.fdd8f69e.0":{"name":"@material/mwc-list","version":"0.15.0-canary.fdd8f69e.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.142b1549e.0","@material/density":"=7.0.0-canary.142b1549e.0","@material/feature-targeting":"=7.0.0-canary.142b1549e.0","@material/list":"=7.0.0-canary.142b1549e.0","@material/mwc-base":"0.15.0-canary.fdd8f69e.0","@material/mwc-checkbox":"0.15.0-canary.fdd8f69e.0","@material/mwc-radio":"0.15.0-canary.fdd8f69e.0","@material/mwc-ripple":"0.15.0-canary.fdd8f69e.0","@material/ripple":"=7.0.0-canary.142b1549e.0","@material/rtl":"=7.0.0-canary.142b1549e.0","@material/theme":"=7.0.0-canary.142b1549e.0","@material/typography":"=7.0.0-canary.142b1549e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"3888dcd836699affb59b98e4306c2ac03971ac4c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3888dcd836699affb59b98e4306c2ac03971ac4c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.fdd8f69e.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-EjPecxabTsp0Z0RhuHiRH/RLCtOaI/YyNb9ZmQx1IMp+MvMS0MfvOWQfL8igYkYO/rqHmdLO5V6dCv2TV0UOFQ==","shasum":"d82aa3b6fb35e07d3f131b6ad9204916e213b792","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.fdd8f69e.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJerLv0CRA9TVsSAnZWagAAnFsP/2s8ftcD34ATJjbdkgIZ\n+aV7cEWSEb+yrmN94X28Kci3fWwlwoDEYOC1g/TL0CPhb8cbMePNwpoFXSD0\njeQfc6x3pBIHaDyfU5ArWxCHZAKVjw4UQaZp+HAaE8N9DnR3vu+R5uoEviLT\nDGQQ4HEfUZb+0iSsVos2gUSU/SR9zjm3tUCEWtdNxAGM2sQNBCxaCQsw6GP4\nfsJkyl83828ENjlChOb/PjR18cOqWOyIgv5fHXRQjtEu0vGX23S4UV4xks47\nNaB1schr7ErW3Mz4AX4jLMYuPL2jzUJi224InZ9erHhqCJsS6nFgrIrJ/1fi\nfwP2wypiRL2lt2fHVcu5r00hUWbgggJPV8Y5DLfKF+UC2S7HE7MtOa4YwXO9\nmipzHd34El2lqCIhs4QEj/q62eRdwsjJ3b8t07l5y9LB3hJJtWWAcv4GHWBP\nywrXx7DN1XcvPg3kdVWz1QAYrpjiApkXyZzl69RNZ3hzo3zkkV+kQYm9pl19\n5C8lTE0c6APdHfH0mS2adnpRHVmYRyCeIzlWvf/MhmXktIh/mzAq0bJMcxVf\nhxqoOnDCqd0vDZMFrecWNa1zQkQs2Ii+NPommfF8OaU++cf8xvbZLYn0t0r+\nCMaZZh/20tZDSD7uODkYnqMOolEEtKKuvzzanCsJxNX+KJCLGPoBnmL9EC7G\nCWfB\r\n=B3QI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIH0fJ5ThmWKn/RLjoYYPSmhlYPOAL6gzRKnC6MiywWZLAiA/fg9E1Y9/daAkv9BUBd58avvhfYPwkcNwdMTekROyTQ=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.fdd8f69e.0_1588378612470_0.22916373356662145"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.730f45a8.0":{"name":"@material/mwc-list","version":"0.15.0-canary.730f45a8.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.142b1549e.0","@material/density":"=7.0.0-canary.142b1549e.0","@material/feature-targeting":"=7.0.0-canary.142b1549e.0","@material/list":"=7.0.0-canary.142b1549e.0","@material/mwc-base":"0.15.0-canary.730f45a8.0","@material/mwc-checkbox":"0.15.0-canary.730f45a8.0","@material/mwc-radio":"0.15.0-canary.730f45a8.0","@material/mwc-ripple":"0.15.0-canary.730f45a8.0","@material/ripple":"=7.0.0-canary.142b1549e.0","@material/rtl":"=7.0.0-canary.142b1549e.0","@material/theme":"=7.0.0-canary.142b1549e.0","@material/typography":"=7.0.0-canary.142b1549e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"e4604a16ebeca9fd76a4f742d3f936e83aaad680","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e4604a16ebeca9fd76a4f742d3f936e83aaad680/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.730f45a8.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-Au8I8aFU5nOv8KflZq6Uq8lEfPRAIe0Yp4houRJGaSvQRrApyXPzx/tsC7RdGk30ATVDesfmwK4SGc3Kjiq37g==","shasum":"a4eb297252562af73ec8f85d705c1dffcf7eb883","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.730f45a8.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJery1cCRA9TVsSAnZWagAAVn4P/0IlOujMWyCAcdfmhgey\n3P5ZG/BUGJHcH3AOp7sz/pRjaMkCl0iZ/XSPtVRQ0024IXLV0uxnNCWN1q1c\nwqljnheITQkhNWmoR1GA1SEt9jSUxzqLJ7cBYdForMBB2zUnM8yFt/Scl3bT\nw3R1xlCMIDAx3UC6YKFwkpXVmPw7T6hzp8Jw54LyDs/mNtcIP8nuvUqGvg2V\nlISkf9Qaoilh5Rvnp+u7fQdHzNxjGGyaBmpiCBdAT2rxFxkY2/GFBHuA+rYY\n/Qy7qDNnUM+9RqZ2d/3cGclmoa06e+DcQtJioLXoZhJrf8b4xWwudkUYD+Gz\nBpMIhzkgmXZ/PACI7PYvPbEz1yVthPjzVZIXHSRCzwHZH71Mf6K1Kw+7t5sF\nd1EeaHTHV+CPt4ddRALU+YQYWIHpGS2TeW8w/CGHdUJexepXMJ6WGVPnHg0i\nAH0Im+U9xKRqavBJYAR3sWle8Q9WPiXGJ+FS2l8o7cQ3S6VvWRBo5sugnHVL\nApFwW8lMkoRuS5GsEau4WuzpApzjyeP/of28YAy7URjZzDVVlvqCc/XJupwB\nbxmWnlcHAa/jFAY4NGsecp21L80hOZLi80wyoyidyyse8GKmbStkrn5KtonF\nq8UBWCAL1mEb25smxYBF6jpKGzwGcPAR5fESgCVSdGoAFLASd4EarpHsj2cY\naF4P\r\n=57Ia\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMy2lr26cU2fa49kMnEeGYsanloNiSL1UNYejPhVvukgIhAI+eYGpZJJFx3N/YlYpMKjF7tGfss52B4ucOTFDcUDUq"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.730f45a8.0_1588538715972_0.9219953698032062"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.4219bd20.0":{"name":"@material/mwc-list","version":"0.15.0-canary.4219bd20.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.142b1549e.0","@material/density":"=7.0.0-canary.142b1549e.0","@material/feature-targeting":"=7.0.0-canary.142b1549e.0","@material/list":"=7.0.0-canary.142b1549e.0","@material/mwc-base":"0.15.0-canary.4219bd20.0","@material/mwc-checkbox":"0.15.0-canary.4219bd20.0","@material/mwc-radio":"0.15.0-canary.4219bd20.0","@material/mwc-ripple":"0.15.0-canary.4219bd20.0","@material/ripple":"=7.0.0-canary.142b1549e.0","@material/rtl":"=7.0.0-canary.142b1549e.0","@material/theme":"=7.0.0-canary.142b1549e.0","@material/typography":"=7.0.0-canary.142b1549e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b0ea0642a3b7fcfd78e46e68022be39ccf7b5e68/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.4219bd20.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-ZNw3kkVOkniStOs+RVrDUeAL4AtFgflo710JDBJxDVHCkNAhU1Ro2sTImCUdWzNR53qiigSFWJH4mY+d2dVMlw==","shasum":"66e9d23ae23d779377aa405a38e277e80f8e6229","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.4219bd20.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesKYQCRA9TVsSAnZWagAAOgoQAIE6RgAlDRO1lTrxcyOM\nNs52WOsAj7zmesxFowreBoRhwhV8TODiIUp9YEarjIzJBE0rxZnqDmFuiMV5\ncC776LIORh/GjGx/2JIvQiozmfR8wwMfsKjjySfyTqEJNZlEZJ2FDHWTMg94\nyAtSeN2gXvgklDliK1dFxNWVh9FsJLttsRrEh3bsk5Oq1nRI5F3P+Sh+ucET\ngQm+U9Jq41eLvrEVwCCIg5oZm5NWsxf8Px6yPQGlY8fw0sBf8gwKDqitWrHb\n2OE+RHj1BmEgjoPyRe99EZOA34xRjyWLnxOv3Lds/C33Sd3JTN2yVcBT8zie\nMvw6O+xw7TX+DT8DkUiULcVT8NjQ4NnYDjM4tZ8/f1PEGN6dGEHI4H1Vltcz\ngerwlh7EOeSFFmb2E7pNK52wY2dgvtWAlVgRQCTUZku6LgEj9zQs3le/Wgg1\nl8gRVsyA87WBA2Ofx8IQTlE7HQGSAMaqJXSHZJLwhnhON7YXp6U/c+t2luMb\nNv5ctxTcOtLd5z/TA9lkZBrbPwqix6EZFP0GEfM08NYyxRjq3xakCN6MPzBC\nH60Rmj50oo3SoZARK12nWu2Y41gSINuHH5E7XrmBoVT9x+zmu0Lf0bOLxQxz\nDeWAGRo3jncRiJogedm++0b6QV9YeYOzuk0eEBOUk1hXGq+PHDDNHfnep0yQ\ns8Br\r\n=HNcM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAM4XHkUn24xlnpe8XezyhZ/U7PwvpZMhVLO/IbhbrjvAiAdNYGbDJPI8yXwg0t/jMGEOhMbX+B46rqgqmBIlkgqgw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.4219bd20.0_1588635151395_0.3705064070727453"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.1d83cf6d.0":{"name":"@material/mwc-list","version":"0.15.0-canary.1d83cf6d.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.03dec929e.0","@material/density":"=7.0.0-canary.03dec929e.0","@material/feature-targeting":"=7.0.0-canary.03dec929e.0","@material/list":"=7.0.0-canary.03dec929e.0","@material/mwc-base":"0.15.0-canary.1d83cf6d.0","@material/mwc-checkbox":"0.15.0-canary.1d83cf6d.0","@material/mwc-radio":"0.15.0-canary.1d83cf6d.0","@material/mwc-ripple":"0.15.0-canary.1d83cf6d.0","@material/ripple":"=7.0.0-canary.03dec929e.0","@material/rtl":"=7.0.0-canary.03dec929e.0","@material/theme":"=7.0.0-canary.03dec929e.0","@material/typography":"=7.0.0-canary.03dec929e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"72586b3b03638e183dfd5440f006b405468a37d1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/72586b3b03638e183dfd5440f006b405468a37d1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.1d83cf6d.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-dxjZaGPi3oenujaTZayJbWvx5KovvYvkNttiC79TKUU4GmPZFI3X+5Xy32Pa19LDZ2LPBfSifIhF4AXFWCX11A==","shasum":"4d12f9e9d38f44313c85880c6f3ac5bffd659a63","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.1d83cf6d.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesZ59CRA9TVsSAnZWagAA60EP/1yoztfauLPQVpswNQpD\nvWY9dKkekuEfhW3HA2uFeXc8zUeKgA7G5G3H6QTqxLp4u1msfwF/8MHeSz4P\nQlcdq/u15o4/AIm3RyVr1pA5ZMR7a94qyadD7OXbQWrlubK9BvsKIw4f0j1v\nwHESYieURrTT7KVILx05VTDco/sTlXhRtG8lJqv5qntRbiRj2dr2ISforHo/\nUZwXb6CT2baUql555ZQaOTYWlP9vKYPmczPcQ+MAia+bCWX9OLz/KGEpEL4R\nF5KOGEkHNY7lbe/DYswV2B99d0hT1ej4juFzclKqst1/o7z7H4McZXO0oYkk\n0svNgddrQigqm4RpwprkrwRunJpN2k7j90LvsOkyMCCkydkYINb05KzLnRUK\n0CfxOwMNkh2kkiBfhNfiLQAlykK2LfL4QMO4CZCiJR2JZ/2eKZjF19sssDk+\nubXBvbAbS7pglcbK32W7JbeC/IkzVE3BY2aB+MLFxBs4g+YOvdecGVHj6jWF\nZtwdowYxuopjyYMffjbUrF851vylGj2WV03bptvpe3WXn36uwcHyRMY1owzb\nM8VyBe5ZjqUpMNYPLgC/dTXMT3RSAbXQnI55iIVyOF4pUx3DUlO2dCIae32W\nLLywQ1ujX1F75CTnjyEUl3gdZxBZSBkVOlGVsF4x1J0ji2rY4tf4d6zQ+py5\nk71x\r\n=IIIa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF0Tfq/6mNa2aCnjUmfgRXmGDYYr4JgIyo3IeKPltmMKAiEA1IGCXJ6FQ2/jUa3CNrxnWIbM73H1l/xnmoOPoNIP8DU="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.1d83cf6d.0_1588698749413_0.151349757147355"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0-canary.3bfc63aa.0":{"name":"@material/mwc-list","version":"0.15.0-canary.3bfc63aa.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.d92d8c93e.0","@material/density":"=7.0.0-canary.d92d8c93e.0","@material/feature-targeting":"=7.0.0-canary.d92d8c93e.0","@material/list":"=7.0.0-canary.d92d8c93e.0","@material/mwc-base":"0.15.0-canary.3bfc63aa.0","@material/mwc-checkbox":"0.15.0-canary.3bfc63aa.0","@material/mwc-radio":"0.15.0-canary.3bfc63aa.0","@material/mwc-ripple":"0.15.0-canary.3bfc63aa.0","@material/ripple":"=7.0.0-canary.d92d8c93e.0","@material/rtl":"=7.0.0-canary.d92d8c93e.0","@material/theme":"=7.0.0-canary.d92d8c93e.0","@material/typography":"=7.0.0-canary.d92d8c93e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"00c84910ddd746dddbb2d651a4fe51c784dc78b1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/00c84910ddd746dddbb2d651a4fe51c784dc78b1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.15.0-canary.3bfc63aa.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-3QCYu/HWh/gw9O7ycotS+0m4zuW1nJd1x/BFoSuj2cT6nGuMwfupW3r0UonzlEJgrP/IA1+mha0zpkhHGs6a2A==","shasum":"73e87ad6d17c1fc9f4ce85618db7d2daef4cc194","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0-canary.3bfc63aa.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesazxCRA9TVsSAnZWagAAC7YP/0IIrq5NbS8iE9zN4utO\nGay2ia5dAeBrCTmieaXZcVm+7xVjqLiNCxCGDiVadPzkNxrcJ93hbe9a1cYR\nwKf4qlogdl9w2KagtszGAT+EBGvqYCGKfjbyX92w7pqsl/b1eP4c/tcjumz3\ncAOwzZ0SCfIaUgk5BU0f2Rcx6iRdlIcGdnw4MUUkRpZoB09T4vtVepXgu5EQ\nk+s5TTLquDGDYtVUQS2XuyGghirZXGYUDYmGc4TVpwRNamaNkVgJid5jTsDw\n5S+9aWU2oeQ1FMVUZq3xGF4434j6NxVmDq+cO92MefF0B60ez0t+8BNjf2l3\nsPkHmOjjw3AG8XiEpUV6JMPGU1l771NbN0325Wz2T7gsy6pQehxsCQ4YAuc0\nXqJq5klO+XXywWA9JzR58Qhl2TZcDE6N3tOmyZ4F7GWpxLrdaQhXyQl5z2Jo\nZe07xtXu3WWKh8hx8dS+W+K1ogvyTMABzwnWXIEn0HTXRw31QfLgQ/zSVcHq\nAa+E7T1JhdozXMGClDq0QrEbebqT8huFrPTptkqZ2i4EeFNTYxkJmTAThS8J\nOe+YX4jRAD+t7rdOk4QpbnuWPbOw3OGWUatyGUw/0dv9aS5kUYK1n72AUwA1\n+8NUY/klpEs7jbTAWiz29nMBalxy/7wDe9VpZ7aUQ2ueXEtCkZZjfN4WEmCl\nH5qF\r\n=LYKP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwPAq/+z2ZudPfJP1W+5cQsaLr/iTmg9xbX+j/wdK7LAIgJsSW7qlxBLFbcacTd1z1OfNQUhDce9iwfZawkjuDcZs="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0-canary.3bfc63aa.0_1588702448849_0.2356276633027259"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.15.0":{"name":"@material/mwc-list","version":"0.15.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.d92d8c93e.0","@material/density":"=7.0.0-canary.d92d8c93e.0","@material/feature-targeting":"=7.0.0-canary.d92d8c93e.0","@material/list":"=7.0.0-canary.d92d8c93e.0","@material/mwc-base":"^0.15.0","@material/mwc-checkbox":"^0.15.0","@material/mwc-radio":"^0.15.0","@material/mwc-ripple":"^0.15.0","@material/ripple":"=7.0.0-canary.d92d8c93e.0","@material/rtl":"=7.0.0-canary.d92d8c93e.0","@material/theme":"=7.0.0-canary.d92d8c93e.0","@material/typography":"=7.0.0-canary.d92d8c93e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"749d0b52cf7911d260027fba833a8a291177ad32","_id":"@material/mwc-list@0.15.0","_nodeVersion":"10.17.0","_npmVersion":"lerna/3.20.2/node@v10.17.0+x64 (darwin)","dist":{"integrity":"sha512-LEjy+nnsL6r6RAqef/zgk9aRIClyOtXp2k73AncHJMFdYhjQfgVNJLl+RChlxTuyCafKclVD+ufQFphD+cPZBw==","shasum":"3f8a9e17f303107ba2cd24dfb95dc5017f8562c9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.15.0.tgz","fileCount":80,"unpackedSize":893565,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesepnCRA9TVsSAnZWagAA5BEQAJy6nhs1eS7PZurT3Ie8\nzcsvsi5TbJg+kiC0cVvDTk13xvg7B1797gm5zF22eYqKEo2ybrHSpC4XduuC\nEJFDK+lTqynxBuau6ggIrBgvRWuEHj6yqdFWsitu/ppPrV9rMeb0/qitN7xs\n+eIRKeL5hC3dfUUigquIgY0980WtY4BJaa6in8IdEYHV/xyH4vCUv0I6t59C\nn7lZ+4exfM/+grD5JI9rcN3eMy+kOQWquGsGQh8AVMFlTqbvaeNLsfqVZ0Sk\n9Oh6zTV6z6K4luZqxYXXX5aRLPwKsVvDbj/++jvKzvgmAE/+fGqWFYW0rLXq\n61yePugXE55yS630HyDAdc5ZVkx+uZ+gdxRPDWdlv4SRyD5wR9VTeRVOtOtN\n8gg0bK8QkPTYzEHKNgzCA0kvoJ8soq4XU87pSh5CGHbihmFKKIUWE3CKh3xf\nkmqKN3r2fDBQIkqjz4h0/mzE7J16JyIxuoppPrk6TH7vuN4y8Gf+ZzD7wNm2\nJNHpZJf66x5sSF39TxB8MPe5+hEpga6exAAGMbgkSQdK2FgC+cHvK0Z96qo3\n0jkggkEexae1VLHyWqHMU1bO8vtJkHpy92P5MZomsUQNWS98YT/dInKh+cLD\nm448gNq6xfpkd8n/B2Ltp/ANxSfOpxuhus8aLOPEovEoYQX3/4SRqjuH24Dd\nT79s\r\n=2iOl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFW1rnDZWwUuF0WUP0slI6Gco6vulwoQDrO4zF5ijtyxAiEAqQtfOc1TzBH6hszXEdFEHw5AdLzbhcznjU8w9MbJUUM="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"asyncliz","email":"asyncliz@gmail.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.15.0_1588718182752_0.6079706243422509"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.1f4e3d1c.0":{"name":"@material/mwc-list","version":"0.16.0-canary.1f4e3d1c.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8135cc085.0","@material/density":"=7.0.0-canary.8135cc085.0","@material/feature-targeting":"=7.0.0-canary.8135cc085.0","@material/list":"=7.0.0-canary.8135cc085.0","@material/mwc-base":"0.16.0-canary.1f4e3d1c.0","@material/mwc-checkbox":"0.16.0-canary.1f4e3d1c.0","@material/mwc-radio":"0.16.0-canary.1f4e3d1c.0","@material/mwc-ripple":"0.16.0-canary.1f4e3d1c.0","@material/ripple":"=7.0.0-canary.8135cc085.0","@material/rtl":"=7.0.0-canary.8135cc085.0","@material/theme":"=7.0.0-canary.8135cc085.0","@material/typography":"=7.0.0-canary.8135cc085.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"cddafa9ea64276d2774eca727578ad51fda9c366","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cddafa9ea64276d2774eca727578ad51fda9c366/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.1f4e3d1c.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-yGO3RUscGuQJ1XAnZk0xACCgiZVRmiQnNPh0CMt1LK2w+jlEXllLOlg0M8ubDdqgU7AlMpxeor4bZsexoYkH8Q==","shasum":"3e60504735ede6a24fd9a8b82ded14dc9fbdba1b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.1f4e3d1c.0.tgz","fileCount":80,"unpackedSize":893651,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeszSBCRA9TVsSAnZWagAAhGEQAIoLQQW88W6kNvCzjEUw\ndbHF9igEaFSu1Oaxtdz8+xfHEjH1z3v/vMMNJ+Nyl2AzDA0u/n+RXalFGiP5\nGyW+aKThdKLKCmfDenb48Ax6B84w3y6mo8e/topCoq7pbJuRcrPq5aDOrWIg\nYxuwtzy4xxsjgvtBZZXUstVn7ZlftuqlZOzs+/l9m4qgPn0BA15jdpkKYEDU\na+wFybKMIV+jM0gu/RoB+6huVQ3ujCKr/d2NeWIv6IFud98QZJJHalW5ZXma\nAXXgmrxbtga8n30xgIlCUBQMOwVJ8W4G+KOmaqLwNnLr80rTrWx8Lrt/PIFY\nzqMxrxkl5Uxq38pr19S/Mp61QO433R0dD/58zbo6hmOJmqGaWoQ3yEtesVWV\nkLiweIwSYwZ8mGP446f1B1dkBqilmqsH7tAfqNOWDBRINtu/2foigKWWAp4B\nyhUQTayuFN4CKkIrTB0S/FcAZR8h4EWr+i8Onvt55UtJNA/eEvtkK9Crt7zU\nF8t7eDhD735SNRkYivcclKrq0P3bVDIGeN5DScGv2xUrBplhqFKhquMobIU7\n53O5ZRH/Q7fo7J/snjGmK0mHXTCv8TTwF7aagj86CsxoimIq/3iHSmmlsHeh\nj7Xc0iSOP6r2OWGu0tCXLBEVTUrXeZEYjGm0GRhlaxR2OuKcgATCVRtwzt/7\n+U8l\r\n=DsqV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC3yc9Z792KqDDvg2aQ3bqHoFa0StTMmxaoAtoq9qGwnAiEAunwaJWW3g58WFG0Fz0KfJL5DhpgWqijwt38uQ8wQArY="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.1f4e3d1c.0_1588802688932_0.08036985749553582"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.bc8759d5.0":{"name":"@material/mwc-list","version":"0.16.0-canary.bc8759d5.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.f83e00898.0","@material/density":"=7.0.0-canary.f83e00898.0","@material/feature-targeting":"=7.0.0-canary.f83e00898.0","@material/list":"=7.0.0-canary.f83e00898.0","@material/mwc-base":"0.16.0-canary.bc8759d5.0","@material/mwc-checkbox":"0.16.0-canary.bc8759d5.0","@material/mwc-radio":"0.16.0-canary.bc8759d5.0","@material/mwc-ripple":"0.16.0-canary.bc8759d5.0","@material/ripple":"=7.0.0-canary.f83e00898.0","@material/rtl":"=7.0.0-canary.f83e00898.0","@material/theme":"=7.0.0-canary.f83e00898.0","@material/typography":"=7.0.0-canary.f83e00898.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"bd62828e2f7b66a127bc0ab165f32bf39b79fb0b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bd62828e2f7b66a127bc0ab165f32bf39b79fb0b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.bc8759d5.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-S2vdZgKi+IeC69IA9xlK6FRG1I/X3SakW0HLbp47NGJR5G+6ag4oMVA1SDZbLjH5FqKu9c9TwLCq1u76k5Ld2A==","shasum":"ec9731260bea396e30d7e6f3dd1352f89aaae898","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.bc8759d5.0.tgz","fileCount":80,"unpackedSize":914555,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetJZ6CRA9TVsSAnZWagAAHvgP/jQyy7f92NdAuxfZCA5l\nuWETc+TAAAAypMj7bg0L28CMR4HO6mQQvMIjpplEZSuYHGpO+BsFAP64BgG0\n2o67B+275XWDhO7r+WFW5c6g1fWpJ19kxK0nswqrejdkvgTDuL+y45lknzHD\nQqLY0BL9AsdbqNXV2l3zvbKwqUDnZNdWh4Ak+/1LETp/EDvGOd8UebJEOYyI\nYyiOBkP99UTpq0ygRdUPl1V2ZCZ0FqVE+G5liL7iPQBv7QT4gJ470FH0KJPT\ncjdOXDaynR+IMQrsptMga6kZHcTfJYZV50kUWZZ9si/R/CBxawNKlVtIZNiD\nlLkYe/xw4pa4eqW+C9iXZ76WwDQaNqJTNwBtF7tromrs/CsSlE5YupVRiXu/\n5vmrNMc8fd7gqRkNca9MGhByLkCNrl1uM7k+2f12sWBCg2dkYmo2fGAwMpIY\nOUCXk0wB57J+JZBYoUlEm6RiQBRXVO3CBnqVf+Ss8FZz33ZlQNEQtempZdCs\nGaIMD/owWOmqpe7eaJ/IJb4Iw+SJQ910M7/XL/PW+C/67wd2+/56j48lW/76\nLABXrEvTr23VlRJJgbRZUCzDiH+cmmAh84/wywpoh9HD7e5GhvUj2ZFXHatF\n8koUt6R+/Ggy98egd1ikAg3SH7vzkVwaJ8Rk5qmu14NJfd/PdSX43HrAEc9d\nhsSU\r\n=YPV4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyD0bBp4dIOcm29Xj4L2yU5+2qB+qV1Y/WSL9f3xf6vAIgCq+4nBKhT43CTbwagx/99r1xYhaKJRt3vwVxh9kFPaw="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.bc8759d5.0_1588893305279_0.3049430427289499"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.d1379acf.0":{"name":"@material/mwc-list","version":"0.16.0-canary.d1379acf.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.f83e00898.0","@material/density":"=7.0.0-canary.f83e00898.0","@material/feature-targeting":"=7.0.0-canary.f83e00898.0","@material/list":"=7.0.0-canary.f83e00898.0","@material/mwc-base":"0.16.0-canary.d1379acf.0","@material/mwc-checkbox":"0.16.0-canary.d1379acf.0","@material/mwc-radio":"0.16.0-canary.d1379acf.0","@material/mwc-ripple":"0.16.0-canary.d1379acf.0","@material/ripple":"=7.0.0-canary.f83e00898.0","@material/rtl":"=7.0.0-canary.f83e00898.0","@material/theme":"=7.0.0-canary.f83e00898.0","@material/typography":"=7.0.0-canary.f83e00898.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"7b322d565d0668b9f1c4054abde8984cdba4ee4d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b322d565d0668b9f1c4054abde8984cdba4ee4d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.d1379acf.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-SHi4Z+UcOcxpCk7+2rBAG1jCe6FtU/oO6HT4DZfGjSIAkGGdRkYBo5ega/FoTVgv88PZY5kI3mHxpqgrZIMyRw==","shasum":"8cbda6b259ceadae89289d001e4a7b4e937e0f51","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.d1379acf.0.tgz","fileCount":80,"unpackedSize":914649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetZnOCRA9TVsSAnZWagAAI2gP/2dhn93unIyM+6P+2Ht4\nXQ5CwKCRdaE88+6XlimcNFYPAZZ/KM0lxMfFgu4W4V0tnIiDUMgnF3qZCILg\n55T8LPuvD0yh3G/izFLklps69dhyvn2m8dwhNRQKezPfu9+2XJN/6Jm+9oKu\n3o+ZI1yNMJkiP+9gGJSfHNDfsLIwjv/maa+yyZV7rDC1WPAKR9qj7B05zepS\ntYmwpBUZInJGP4e1vxjl79TcMN3EpBTe494Xw0KpsAbnwTJca+n7RMcVsGXW\nBeFASKb7VRjJSrh9MVMhtUAQHfiw46Qc8kIujClS0+Usu1fb9XKMuztWl8lL\nxe47nswALEFvb68APhzDJtMo+g3iPSn4+sbWY4mhKJ7IdocAlPmFPViRF3s/\nMaUgSlVb6+yYM1b3cBc8ErtuVbD9+iX546Gfa2sxMWFu/U2Yo1icYVTWPu/K\nJnrq5OD3n/QY+uxVkHXOcFqI0n0S+hK4iKgbxmeBUDyx/j8Ku2ysSa5keI65\nz+4LGdhWAXNs+A5dvRivQ9DY1HW4MyP/HqQB7lXUNVDqEHi6dTx9jrdQ6mua\nfRGLDmPksU65os5o06bBsAEye4iqISu02VnEYwRgFaAh0XWeVD4YFTk2V7oY\n9+FhckT0RSDG3VJfKQiZVensoZc1eHC4GhuLF7CB+Bxi/UDKFq9M78yOhznZ\nax3z\r\n=vwtH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYkafIlvwZ5EZgNPGBAQsu0/r6YRZqR9a1Fh548GK69AIhAPyiM8LGNSf0f9xVwDB8p+uz4DDERNRHYgOGxiM9irGa"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.d1379acf.0_1588959694101_0.5041892179696401"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.58d51fc0.0":{"name":"@material/mwc-list","version":"0.16.0-canary.58d51fc0.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.047e6b337.0","@material/density":"=7.0.0-canary.047e6b337.0","@material/feature-targeting":"=7.0.0-canary.047e6b337.0","@material/list":"=7.0.0-canary.047e6b337.0","@material/mwc-base":"0.16.0-canary.58d51fc0.0","@material/mwc-checkbox":"0.16.0-canary.58d51fc0.0","@material/mwc-radio":"0.16.0-canary.58d51fc0.0","@material/mwc-ripple":"0.16.0-canary.58d51fc0.0","@material/ripple":"=7.0.0-canary.047e6b337.0","@material/rtl":"=7.0.0-canary.047e6b337.0","@material/theme":"=7.0.0-canary.047e6b337.0","@material/typography":"=7.0.0-canary.047e6b337.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"095d9f72ab7ca9994ffd376ac6b1b0daa4c99011","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/095d9f72ab7ca9994ffd376ac6b1b0daa4c99011/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.58d51fc0.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-4nMtbBBEjKRjKi81Fli9D+FKT9VUoBVNxgCw2uscuAn72LHtbGk9sj2y6QxT6zCtheZmGQRHT30NkkTWBbKMPA==","shasum":"0988126e35d9d52a6343be0c34b805964f70c75d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.58d51fc0.0.tgz","fileCount":80,"unpackedSize":914649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetbBiCRA9TVsSAnZWagAAahsP/3P3el2Os/WFC8w1Idtc\n7yHgEgR6ACUm2RkEHZN+nBUvlWsg+3PCpqOqvV/lyUWGfu73OTOEVopFHxP1\nj2GwITHaEY8rmVuKRUoec+rxn0qMJbrkKC8+xevvIv427GRAu6b+KQsaeuYp\n4J12CQ3yC2wHXzRnUMbCQ/ji8N1qfzq/QjzDe2Wq7bSnPwnSBsFlB1pCD20P\npq/uJi0wt782KflSqEPCCKTVXrnDWNcm+yGeY5NhQ7ju/n0f7YoUHNz9CdEe\nsrmBcMmBH90fc9a7IJoepE1BLqBgCwhANDPnazcix3YFJEBS8utur+TPHPPh\nVmZCJ/ddlwm+gPfL08daPFhDFDbDFFsIiUeMhG3lSPa8b3VxtmLzLWmzTat2\nt9KBjA/1lDs5e46D8AVS2/zQ5z6YYQNHX+p1dlxYWiYCtPk8hSjmnJ+IzKsr\nvYpr97Tfd/CSeJUqEtnz/p89TFmlCsSpjCDmSc+HMidpGZpzu6cDEYtj5YJt\nlVkj0D0toKrI0HNTWHXRlmcSgSLqqpUChmkCiHlBGeAaCEwohflruQSBmhaA\nwE3GI68oYri+fxZHb49OR5T+m4YR3UMdJlkdDfTG51Ls/qtwMN7MS1JJ/4jV\nubN8JYO+OiNEBv7hCLYiO667ltQhFoNB5vIQDvs/3d1q0hEmiUsr5SQFROLU\ne4gH\r\n=qm2G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCLH0SU3LnRYY9kilcHe6IbjsjtZgvBuP2J4xgwR0hc1QIgG8jGTbS/EYscdYxmqpaXeNLdHxG10679dWCkcwHiZxk="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.58d51fc0.0_1588965474371_0.9461931486942667"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.588062d7.0":{"name":"@material/mwc-list","version":"0.16.0-canary.588062d7.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.119e21426.0","@material/density":"=7.0.0-canary.119e21426.0","@material/feature-targeting":"=7.0.0-canary.119e21426.0","@material/list":"=7.0.0-canary.119e21426.0","@material/mwc-base":"0.16.0-canary.588062d7.0","@material/mwc-checkbox":"0.16.0-canary.588062d7.0","@material/mwc-radio":"0.16.0-canary.588062d7.0","@material/mwc-ripple":"0.16.0-canary.588062d7.0","@material/ripple":"=7.0.0-canary.119e21426.0","@material/rtl":"=7.0.0-canary.119e21426.0","@material/theme":"=7.0.0-canary.119e21426.0","@material/typography":"=7.0.0-canary.119e21426.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"1b66fe2af3ce7c18a07562e7ad2469074135eec3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1b66fe2af3ce7c18a07562e7ad2469074135eec3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.588062d7.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-cLMdrE9NbbDXuv4G23iqcdxs6Cc88+3JHGetQPyDe4sazBWscal0ZGI1cBqSKzMRWappRfBpVqMh/QXsdVVSzQ==","shasum":"94068ccab0c17a2f58e5e60581da6094654ac80a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.588062d7.0.tgz","fileCount":80,"unpackedSize":914649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJetc35CRA9TVsSAnZWagAAbMAP/jrjsUXVma865+rsSi8z\nt6vEfqo6c+lO6IcBkpXfQwpwLEX1tPjSR6TCtMpKm9zKN3pjeutQOYVGANxg\nX5w+vod4dalBMvzspm70e5HeukCwirFFbvPKrYtyvKpjPW3G+Pos7UEfbqno\n56sLeD57r6dKVwe06ByLZ3rFuBtil73wPRv2YS9HXHWvr5obcSolwHlntzoG\nf0wY+UATBSbDDRNFzo9hBhWL0vO0Z6Mj1BeNZ1n5V8M9IaQb6JP0tikBvSuX\nK69HvOUorwDf1UhYYvqCPr+RMrgws1aKvP3hR7vSDaQwWUbcpqrsNeIhaqFV\nWnOoNNLf+DbWlUyktumlzyhq+Ap/1gElatOash3Upb7KX0dxMV3oXdaU577c\nCMIHYky+L7fRZ8WwFD5hFUlubXyh46rvO+SPgs2ATf4xFgJV3RYXSjJkjXfp\n75egdGLK2E7+FU5j6lzVRybbfdmC41oad8psvgHT1R8P9wnMBL7GYnHY4Eea\nBR3HZWpbpVYErY7wP9zx8lOe87z6H2mBSaQCo2cQF91s9CwsxuGEWm4fvTn1\nnjyBGloJj35YJur3SrK1O/EUDAwCi8yOoWehKWbpOcM804qkG7vppzYrtIe+\nHvIWE/g5p4Ll9HPGFxlwD3ZiGxSCRmSE2otFfFNXXprHlt/vr+Ht1zmQ+psw\n/RHD\r\n=V9SI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFL1hncRz+OhBxsvsys9vdgpjv/rk4SaLIQLVp3M5WPuAiEAgmwpR2MII9eH+7okhcOJfBpKLWZVIoBggcAYEPqT31o="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.588062d7.0_1588973049106_0.8726321875853762"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.fa21f639.0":{"name":"@material/mwc-list","version":"0.16.0-canary.fa21f639.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.a5aeb3001.0","@material/density":"=7.0.0-canary.a5aeb3001.0","@material/feature-targeting":"=7.0.0-canary.a5aeb3001.0","@material/list":"=7.0.0-canary.a5aeb3001.0","@material/mwc-base":"0.16.0-canary.fa21f639.0","@material/mwc-checkbox":"0.16.0-canary.fa21f639.0","@material/mwc-radio":"0.16.0-canary.fa21f639.0","@material/mwc-ripple":"0.16.0-canary.fa21f639.0","@material/ripple":"=7.0.0-canary.a5aeb3001.0","@material/rtl":"=7.0.0-canary.a5aeb3001.0","@material/theme":"=7.0.0-canary.a5aeb3001.0","@material/typography":"=7.0.0-canary.a5aeb3001.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"e20cc975825eb5a02be956c28db1cebc2f8908c0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e20cc975825eb5a02be956c28db1cebc2f8908c0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.fa21f639.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-vhN/wAMDCpFN91eXSIgFk3Amt+VjqOYx/SS4OiNR3dyQ8Kj/ZOPq/qIMJt/gQ/SL85aELnTNGb4nhlbM8VXIsQ==","shasum":"2b7026f62a46dee67f60f3f7fe843614b57b9f67","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.fa21f639.0.tgz","fileCount":80,"unpackedSize":914649,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuYu0CRA9TVsSAnZWagAADScP/Al3lQrmK2/oAqcKUhNw\nH6FZSt5ioedy7sLaz0ndKYgKBPBgB37FXlzCt2r5BfI5vPKZuehD1lGyXQ/j\nU+8SJo7h00pIJ6KEBkNBBPr++yIckT24YmIlx3I4FKgph6CjGh9uE5mVMZ4L\nfdUGo+NR/gQ4SwOXlQncyDmZS3YWV4zv896PObLWjz7sQIwblYD5Dc/Tw7Eb\neWI/xD5POiMwRWQSb+xfX6HX3LXn/rm/qv+A1AwfzpsXtLcgWtB4Qt6gXzBC\nIK/YyDAhEW86VHf+z5JMEt2wpMd2g7noRq7J9n2ekHhVFXhmBiE8DViX6hJ/\n3P+AsCWVzQZGDQI0LXzatRmFgHfBKEUD1TTTX4C8hp0qE4i6QmESAxUJxGt7\n8J0ujKclnvBB/Dp2M57A8VXqgEZNsmt40UKcaj3NT8KQOGWcUq1b14Yt4Lty\njF2aNfm5koZq1qDGjOKWuMteItDwmZsorsAvtwz1LibDqmjkQkrWHzOnqtkR\nJzq/Ftkgx66Lmqo1nMMepNNZzzqVsO6EJgW9wfDNk/syJQojWIM90byMIZxK\nL45S/hSibw72kmQtfHmq5saxcZdbAJhHQxlfoTk9TDMuPprQS06+M+Y1kVnb\nxLNXasfq4Nn+soK0DsE7s+8ZqVSRPFCpu9gDE7kn7dLI1LIkK17SMc2ZBwCb\nKLkj\r\n=HWpR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmXUQ32276/yLmBnTdOZfoh4NYNU/bikzAq1nET5aaJwIgXU24MBjAXO0056xTmszShj2OTgqLZ37p0ffjJ8dVGbI="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.fa21f639.0_1589218227682_0.4768977765541542"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.2772c509.0":{"name":"@material/mwc-list","version":"0.16.0-canary.2772c509.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.a5aeb3001.0","@material/density":"=7.0.0-canary.a5aeb3001.0","@material/feature-targeting":"=7.0.0-canary.a5aeb3001.0","@material/list":"=7.0.0-canary.a5aeb3001.0","@material/mwc-base":"0.16.0-canary.2772c509.0","@material/mwc-checkbox":"0.16.0-canary.2772c509.0","@material/mwc-radio":"0.16.0-canary.2772c509.0","@material/mwc-ripple":"0.16.0-canary.2772c509.0","@material/ripple":"=7.0.0-canary.a5aeb3001.0","@material/rtl":"=7.0.0-canary.a5aeb3001.0","@material/theme":"=7.0.0-canary.a5aeb3001.0","@material/typography":"=7.0.0-canary.a5aeb3001.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/757bcaf3dfdfbcc62a5b2990c87cd91f80fbdd1b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.2772c509.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-F9NOO/+sA6nvQMLQeurkFP9yhH/Hw5tZcpUEGYnhb3mEBMQUiHU1zbRZ5OMmapA1iuql5skmsQSdJCGksHNA3g==","shasum":"8e4e83519a95a894d2613db1f8fed4effdbdf061","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.2772c509.0.tgz","fileCount":80,"unpackedSize":915575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuZtOCRA9TVsSAnZWagAA+RYP/3ni4xdoOEB0NFiYWCv+\nRtFwt93mFx31BBoFIvp5WWL//YEAImCfttFOhQ2tt5y5h6KF/Uj3x5XCQ63b\nYJAzPvyPt0sS366vUUYj2ET3793bcd9IrQHDqc9+bvQjm00dZxaJGgjVXvcM\niSEWflsYa6wqCHoilzFAFrZB7R3qR4VCjE5r7NaZBtwoncdKDH/RsuNcMcze\nyXa/Cn8tmbau1KqvN0TdD8Fb47CtHSFZeEmG/3KghPWc6zAYUT177KHSzxmG\nnUq4tmjvK9Pxd/HVySULwNQFlJDlK862ujSmgTILCheBZ0JOvIbe5wOcnLRA\nf1KxHZI1fP6c08T+1yHfzFDQ+0/qMHqDnhCUUhlL2q1MpwYrKqlwBVIrgS8n\nzYjHIKA/NueCEMK4dMiPSjIxSnbg5B7158jYmhPDj3Dz0QHXYGjKZicV4WTM\nxAaLUoKBbuh2WhHe1sosvNZ4Wod1ED6Y+7lehBv2/OiUEdC21gdZyl02ItzK\ny/PTOqdH1k84Ej4+B+RFTOIansPZwTNC1N1Kh/qIokE+Ppu+CKB4GgRNqntJ\n2G44pDmIIjd9UvdYgyLJCWatIPwQyEx55dpJDAKVKnAfzg4Q9p0h2Zz6fM6W\nex18QqYR5KCnNghLA/JWQPDUcqavvmxFq+g5WMl4rx68AZ+gNsYIJiGikuLw\nRlFv\r\n=Vkme\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSTRZeS18z2wuOTodJJj0nq/RVTfGwpW6SNPQIc/uCfAIgJseSRhSvrM+eEQj3hFkl+aufyiUBnxZEVsesyzdk2f8="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.2772c509.0_1589222222306_0.7566431678648815"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.fc4796d5.0":{"name":"@material/mwc-list","version":"0.16.0-canary.fc4796d5.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.a5aeb3001.0","@material/density":"=7.0.0-canary.a5aeb3001.0","@material/feature-targeting":"=7.0.0-canary.a5aeb3001.0","@material/list":"=7.0.0-canary.a5aeb3001.0","@material/mwc-base":"0.16.0-canary.fc4796d5.0","@material/mwc-checkbox":"0.16.0-canary.fc4796d5.0","@material/mwc-radio":"0.16.0-canary.fc4796d5.0","@material/mwc-ripple":"0.16.0-canary.fc4796d5.0","@material/ripple":"=7.0.0-canary.a5aeb3001.0","@material/rtl":"=7.0.0-canary.a5aeb3001.0","@material/theme":"=7.0.0-canary.a5aeb3001.0","@material/typography":"=7.0.0-canary.a5aeb3001.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"ddd82bfd80666625c1dcd7c92fe79f5de6f84657","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ddd82bfd80666625c1dcd7c92fe79f5de6f84657/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.fc4796d5.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-VuSEteqkaine3dinh4Git4hpfP25ek+lSJWWaJXQKcwAav4Gf8KchARnhhLA1ndRtQSP6BPQDRTlBmXikOUTaQ==","shasum":"8f703e89d04f97df5816cd88b862451249c2e406","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.fc4796d5.0.tgz","fileCount":80,"unpackedSize":915575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeubAcCRA9TVsSAnZWagAAj3QP/1iYO9yTKD85L9OeAD30\nJtaUknLlL35tjEVGS23gqz/CHiMumtSn2aWxVDgSH9WvKCKsOwcaediKyRSQ\nlrPiUDNhWOhuSaEB78Vm9SKcWmWeBUYc2msD6jWNxPQ4rJDnkgG0LuRY+U7V\npiIb3FiTKNcpZtWW6qCAvN2O4FR444Eu49SJ4BAP79FcOYZwPal3RvvjO4dW\nRtyJPzg2nT0PI3dQoPV8ojNggiv8C5/E2gujISMJgceSEIYIzowKwLtejKXx\nAT8GCpliBE+indwvIRy+D8fujs+yjP8KLMOnNgKb2QbZXEQTT/+/Lwh+oVle\nCXeLJ66w9c3l2ocAjgXIkahiUTxAB9QAhHg0nnTPNuEfBuJfRPF2Naozw95C\nVK0KTb0UnugJNaOKBfrMhTXyxkepLY0bzdp1EN4dQ9Ht3hhWNK9+j9eb5UR/\nF6app+UcFOV+vP2BGiClccLQKYqmwmfYFSISsIAIAvy26QIDBDHNTqFnjWzy\n1sbFutiEwy1tHyjsYsOgXKcVZzElF2RLPqucfkF/arDcYEutlUk7QOkRono/\nOoe9TwlADpn3IrNOcCdeIZ2prMW8nFYzclXuL8LZhYxqV9hSsjRZkwxJLAAC\nNHRtDHVSGdkJcyHf1QUDqac/Kk0jzjOY5CEI4eXGK0bV3b+ObE44TLFXdbOF\nNV+c\r\n=kpZi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH9V7/YkI52Xq+gtc8+A5aq0a0r//YcSMwG5MiuUVVw0AiEAi7tug+1dH2RThzGohQzkTh7tXj9WslQ2joaAIbe/EHs="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.fc4796d5.0_1589227548200_0.11576011498606142"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.0d1c5f2c.0":{"name":"@material/mwc-list","version":"0.16.0-canary.0d1c5f2c.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.ed52af767.0","@material/density":"=7.0.0-canary.ed52af767.0","@material/feature-targeting":"=7.0.0-canary.ed52af767.0","@material/list":"=7.0.0-canary.ed52af767.0","@material/mwc-base":"0.16.0-canary.0d1c5f2c.0","@material/mwc-checkbox":"0.16.0-canary.0d1c5f2c.0","@material/mwc-radio":"0.16.0-canary.0d1c5f2c.0","@material/mwc-ripple":"0.16.0-canary.0d1c5f2c.0","@material/ripple":"=7.0.0-canary.ed52af767.0","@material/rtl":"=7.0.0-canary.ed52af767.0","@material/theme":"=7.0.0-canary.ed52af767.0","@material/typography":"=7.0.0-canary.ed52af767.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"56733523245d57fa1e6ebe3caa22ef89bc95e8d2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/56733523245d57fa1e6ebe3caa22ef89bc95e8d2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.0d1c5f2c.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-FKiF9vxl007vpy/xs+fnDqktNRQ4RuAjspUCrT1w3zsKM//VnTm8tFthCM+xl2CS7eigcJYoYeY4fBbfz7JSoQ==","shasum":"cfdc7ccac5337c2a04118c3324fbd6aac341d7ab","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.0d1c5f2c.0.tgz","fileCount":80,"unpackedSize":915575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeucGLCRA9TVsSAnZWagAAtC8P/R3+vC0dKFKAi5IMeZTn\n4qGJUgFnbdNO+T3Fs+Mj0AjpVdrZsZSaCNtXXEsFZB3fuAmwh8VD1iFWiFgY\nb/aLqyUfLOZpXQXGX8NP0546pklQWEkGB6HswuEWEKpU1E8/OqCvRQ770Kqu\nmO7eZh2k/B7w2WmvUJOzxDdZEXesS+c2dwHn2oy6R9V2V5V1LloZt5p35bKr\nc8k8w7ktVkQLBJDfafFLZcsJyPPjkO28KhGVEBdXIfqKpCPqbXvy8BiDGq0J\nqOKuwwaR9MYwE8e1e9pDyDlK6/VEcdMKNAR/1AfXdzV3MVKVUwto2GxZOjOb\nPf5dzcEaaCvjJOQeS7pj+aLYmP2e4DDfVI+uY64aAWpw1lFLfgRH0KkUyI1H\nv19JLNftbtcj4bzDi+yuGv17OqTYGHaBLtFfQLlY1oKKdBnJfNFx95SmR55x\nHc1fcDDHzuQ/lLjWqSMBLIxr1vLU7Y8kfaX3bqBfXr6tj1chuQg7kxPoDGsf\n9AddfZ2KRTgev6NepIRiafKuuoloogAw8tPThJxVyhDbPlYZ42Nx+GJw20ro\nMAfU5V29KSnaYW2d2/DvJC6rBn4PHHo3q9J/TpA+goJMQvZt04zCJbQoUt1D\nFKwqhVBHJl3L9DuSNV+zqnZwW6huheSLkBZJ7Z+JKRIUvR25RBk0D+ppnHg5\n5oQx\r\n=Jruz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB2nKDjX3uOwGaJiGy9braYvdNUhK+zqHn103XJMtZdZAiBU/+us67eUyuAPfZdI6LFYbSnhgu+BxtSglXwgq+KlXw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.0d1c5f2c.0_1589232010968_0.24482024195033159"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.d083d93a.0":{"name":"@material/mwc-list","version":"0.16.0-canary.d083d93a.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.058cfd23c.0","@material/density":"=7.0.0-canary.058cfd23c.0","@material/feature-targeting":"=7.0.0-canary.058cfd23c.0","@material/list":"=7.0.0-canary.058cfd23c.0","@material/mwc-base":"0.16.0-canary.d083d93a.0","@material/mwc-checkbox":"0.16.0-canary.d083d93a.0","@material/mwc-radio":"0.16.0-canary.d083d93a.0","@material/mwc-ripple":"0.16.0-canary.d083d93a.0","@material/ripple":"=7.0.0-canary.058cfd23c.0","@material/rtl":"=7.0.0-canary.058cfd23c.0","@material/theme":"=7.0.0-canary.058cfd23c.0","@material/typography":"=7.0.0-canary.058cfd23c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"740c7f6a0f292b586689cce49e46a93876251b93","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/740c7f6a0f292b586689cce49e46a93876251b93/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.d083d93a.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-4dusoBXRiVrGjqzvaIXN9kA0cc6xHV9lS8R1ia6D+vPohf7WCOYrptX7o5xjlU6x41kWKzY7/BCrHcZFazafZw==","shasum":"d5333734f0c83ceb99ba204d2126cfb38dcd8c33","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.d083d93a.0.tgz","fileCount":80,"unpackedSize":915575,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuetcCRA9TVsSAnZWagAAn8cP/jXbCeb0HiGbu1/dtieK\nO516gUE7taoXygEfKsy3l6p+LH8E6mQCazyND/t+GdT+nB+acMD9+hAOuKbq\nR6uDuPsDGgHrVJ+ie6KJBXSxvIi4smZ2O5sdqBP5EjNLoi8eeaj3sa8QlDcn\nWvOkwokNX2MuWEEfciIQrdFFlF7nPc73RDr18UBupgOKtyJ2t8RSQDBf3KMm\n42D9MIr5gQyYGSIK60mLFnnReQBUOHFXKqr/ljKZ7pYEQJ15OESEoat54yN+\nHL7VRJExj1YCRXqtlmFWxb3bQ0W9VQ088Kcqx+1zJKHmY2yZRyepHI17i0BH\nn9VTXZ+2zCAEp0iBajK7b895lhdW6vXRncnkqMFb0ZU6q38tot49jDDJ2F1D\najakIbc44bCNQYE2lLkE5RraRecYe7nbpYQNBSWAK7VXVgBNRvVaiXCkHxq9\n7jCBR3pShroFPRDOTFU2tdbarBVTN+VjYBYMdOQfQJJ77Xyc2XOEG9d5N8CY\niWVi5cszlgadJ6NB0l4DNJgi5OeEgAi5rdBG54qtoRpJue1gYbzALTE4cqPB\nUuJjqqfWE1BjbVrPbQ+AikHO3RHzQBaV4lqVRSRiAjGXZjE+IrsYCKvzOFx9\nLBJN7zkgVJe0kRtsNyyhk/S1BEOruNBf5bt6G2xQ/iyweeTz5Msulen+sfMF\nTyGo\r\n=LTJf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBaiS/zKICBe0EKTRtbgw0x/OKuSRAG5LcQw1QUQEpCfAiBVAiMHRr+bsJotBhY4i43krozjfWbs9JAmqm8aHGgkKw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.d083d93a.0_1589242716104_0.9211484272655708"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.c95d429c.0":{"name":"@material/mwc-list","version":"0.16.0-canary.c95d429c.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.058cfd23c.0","@material/density":"=7.0.0-canary.058cfd23c.0","@material/feature-targeting":"=7.0.0-canary.058cfd23c.0","@material/list":"=7.0.0-canary.058cfd23c.0","@material/mwc-base":"0.16.0-canary.c95d429c.0","@material/mwc-checkbox":"0.16.0-canary.c95d429c.0","@material/mwc-radio":"0.16.0-canary.c95d429c.0","@material/mwc-ripple":"0.16.0-canary.c95d429c.0","@material/ripple":"=7.0.0-canary.058cfd23c.0","@material/rtl":"=7.0.0-canary.058cfd23c.0","@material/theme":"=7.0.0-canary.058cfd23c.0","@material/typography":"=7.0.0-canary.058cfd23c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb13fcbdf906f1aa91a8a2ab889def17ec03e1ac/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.c95d429c.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-EBoCh0YrV3PsQiayGzmgbxS6FNANmViFV/pqIJOyvXUQYLWC89wbRa1cFYMlSDrh8IM57o91vFeAS7LyXMpZ5w==","shasum":"83032a335aff80102b86b720e6fcb22464cae304","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.c95d429c.0.tgz","fileCount":80,"unpackedSize":915821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeuxcPCRA9TVsSAnZWagAA7OAP/32MYye0S00KxhmgKjtp\nZTQYdk8QvDsCs1ftfTz6H8Irb4/szwr2bxNF9nA4np93xVVZUJHjFLUVRYrt\nfuNwgTCvbsMS1Lg6xbQfM/usFmomjMG1W7BDw7nnz3Sxvt4u3RJK2o7kcE54\nR8tYS9I8HekjXbc5klkqgBhz6RZx1s4UCwo1EEqsH/WTWpVpzd8C3r9uq5Rr\nXE4CkuCrZAO//+mv3J/jiNM0xaEPYXfuVgL3v39+cC81Ba4iCHHA5RdKs+LA\nT95rO4et7UsFa8K3VUK62yAlv7FwadXoRgivshOzwzl8vhZ8S9CJcaa+ESVy\nE18wzYldAUrlSuEZy24vk1ifUO8T100uHyLeSp1qNaMTVYawOB58Fb1PV7/g\nx3rnDR0L2iF/o1xn2h6X3u+1Bfo8Us6RtrpBO3aZ/5MWfZUbiDgCoT2eUPAx\nzs0Xr23A6OcO+mzdog5EGuzm32o7cN+LSrbSldV2eVMbdKn+A6E9QkWzjZAC\nfQjcmJvHjnN+6eczxehd3mAo/9ipqKO1O7YC2xQwmRrv2rnUGs4dp72HAE0w\nQ6F2BBndAGi0ddlxxO6ppWhau3dc0RGPkbhQ+Hfw5wFIsU745qqOk9GyhM1U\nEH/8NCj+rCmyiF7FY0FejjEnb9dP37W3FFa10RkA0oEYAdHV36OIChZmlhvc\nPCVx\r\n=EKO2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC2TZZIGXswsDOtE2j3HKhOg/voTKDMqyOzlLhBPgbxcAiAxys1+qgTLhyNUB+6QvTUWMVklWTg+LF7YsnJ+IXCCnA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.c95d429c.0_1589319439432_0.9831464259909963"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.0c1ad726.0":{"name":"@material/mwc-list","version":"0.16.0-canary.0c1ad726.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.0a371b4fe.0","@material/density":"=7.0.0-canary.0a371b4fe.0","@material/feature-targeting":"=7.0.0-canary.0a371b4fe.0","@material/list":"=7.0.0-canary.0a371b4fe.0","@material/mwc-base":"0.16.0-canary.0c1ad726.0","@material/mwc-checkbox":"0.16.0-canary.0c1ad726.0","@material/mwc-radio":"0.16.0-canary.0c1ad726.0","@material/mwc-ripple":"0.16.0-canary.0c1ad726.0","@material/ripple":"=7.0.0-canary.0a371b4fe.0","@material/rtl":"=7.0.0-canary.0a371b4fe.0","@material/theme":"=7.0.0-canary.0a371b4fe.0","@material/typography":"=7.0.0-canary.0a371b4fe.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"9c86cc2738d0075eee9b892c5c2fec842ae62e41","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c86cc2738d0075eee9b892c5c2fec842ae62e41/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.0c1ad726.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-AJrbGXzbRHIgsf3fpTU5obw9jBvtIJm3VknjhGvJRWRdr7WMQ284BC80PylKuLHHGzMADJfnTFxq9tTMtYCllQ==","shasum":"f70a4680fe9443d2d02e9dc98e2107ba0e36adf6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.0c1ad726.0.tgz","fileCount":80,"unpackedSize":915821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeu0CfCRA9TVsSAnZWagAA9JwP/3j8hwOm9SMzV05jtLtM\nK9DgyJpULez29sn+PlQRxokC89uEW6lAyamcTdrTCPwT05eVOLVGh8zplci0\n5H9v1IB8NrDDhv9sTczAZVT9iA3Yg4m+EjlWAL+Jo9a/FXOck4v/QOK2xDfH\nmHZIwsml+UC5B0wPFkIZaeGiOfLXNMrZ3cc1+EL8xQhjMbKNdgPBsF/hTETe\nuWEGyF1o99JOLv0GzFuy5+TtjNFBp9NZMhUdV5W4wsBdM3NrKH+31K4g+51f\nL2NojxxNeoGEYbWORGLlsZS46xlHwiPK6BhEp0Qd7ofOiLAUA9z4/Oz0AZNw\ni70nzjfJN2E0WCxNtvSGtyTuIvzWiCr/8GcaoOYRMQu6o38P312yNN8Ha7p6\nXWiqV0DPA9tLWZSxB3hvy+iSTUA2myDL0CTHHs0xX5cuYFtTdBRAM01/5drw\nIidFo3OmLZQGAuicVDsa62IvGzg/TVHxrjX6S/og3wIF0I9nZtO3enFIZ8te\nalF4XRa2vtJxXSpcYaGOcTfKAklEWhNjTiU7uxZPqf7lb2DtcCFISOxEqwYV\nES74Ho1veHNGq94vrVJRyWPwhPVxhO5Of7eAK3bKJizCk1Vth1B5+R7VdgTf\noXs54dZqf5EaP5Tlgnb461+Z/x9CywdDVXgrEXD+Oq0Itpx8UM4yxp/ci7RM\nvqvy\r\n=Z9qJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBv5UHXA53RC6yM6scRQbvIrHLtG1sBQIxnYa4ytjvi8AiEA+mqkVWXLatauirk32eqhuHxW1JRzCjRvGId34UbHKLs="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.0c1ad726.0_1589330079086_0.7217735492028319"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.8b6a4700.0":{"name":"@material/mwc-list","version":"0.16.0-canary.8b6a4700.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.2139200b3.0","@material/density":"=7.0.0-canary.2139200b3.0","@material/feature-targeting":"=7.0.0-canary.2139200b3.0","@material/list":"=7.0.0-canary.2139200b3.0","@material/mwc-base":"0.16.0-canary.8b6a4700.0","@material/mwc-checkbox":"0.16.0-canary.8b6a4700.0","@material/mwc-radio":"0.16.0-canary.8b6a4700.0","@material/mwc-ripple":"0.16.0-canary.8b6a4700.0","@material/ripple":"=7.0.0-canary.2139200b3.0","@material/rtl":"=7.0.0-canary.2139200b3.0","@material/theme":"=7.0.0-canary.2139200b3.0","@material/typography":"=7.0.0-canary.2139200b3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"268d44b68432688e310671d956cf5005633aef47","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/268d44b68432688e310671d956cf5005633aef47/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.8b6a4700.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-rpc/iHmRcigbRF9bmnlYEvMMW95YkrXpr6J9v7lepDyEoIetHXJcC5tp6Dc/qFlvV7yM7i9qlhtlUyUserof7g==","shasum":"49b4345531185859c455954a986a9a865bf7abb7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.8b6a4700.0.tgz","fileCount":80,"unpackedSize":915821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevCw2CRA9TVsSAnZWagAAq6cQAJh20IKPncNztrJlsJaN\nD5jv7xK8sF9Rf9lxQp6I0GSUjTi8p2D2jQ1ta5VWbVpteGuR1wX2DbfbzmiC\nV0/6J1SQxVTvIxaQYdeA0BU209PvgwepuwpBAIU396/cumMygrYf7LhG64qb\nuQGMVY+n1ZaqLSLldSZvwen9MvVMSI1IHTkpSMpisPz+L3h1/bcSExlFtmQ3\ndaKUqE0Ok/xtWerPR/cmA9S2bnA4RGKsDz/ni3Jb3xRiqZ+cHQsRnw8NwOA9\nvAfG8kflz+RwdkG5v8pjceE0qgie8imW0o+05RIWdeDg7tf2AtNaBN/D+IJ0\nluD6Cq/jv1HcZbSMeeJKXykUM5W9fKxD3Luu2gXfml/e+yP75lMvw3NV/CJX\nkkLnJNI2B+4/4j6X6wPS6UqJt/xfqnE+PFS0QfFdiDqfumFBbuhkJHYOOYCB\nUYQPm5jFYUqEofRlW3aCxgfHgEeQg6Xu++6jDmEU8pnZPvvViFnTCUkvq6Rl\nMN1TpQWKCtafflg1zDmmDZ+6AyGTdZEbXSvY+4qSW9vQqw/zjHy2nEbPpyPl\nTupSt0+1NCcY4XHajyZxuqPO/ksZnlaMVzV04v58LyZmdZlOjSWpcBLcomkk\nbXrNBjjAOWdnrbPCIdjn/JMztoIs2+o+qE8gf0QfMtrYtX359GtPgN7sk0gi\npVoj\r\n=1vjn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAIZQLf3T2ia6dyFImv58pegMu68A8iifR+qes4aAGaGAiEA0m0qRe3TQmk7ACfldZQMq8N/EAhQo/V4B5LvyEO9h5k="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.8b6a4700.0_1589390390321_0.656092077829415"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.3270effb.0":{"name":"@material/mwc-list","version":"0.16.0-canary.3270effb.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.2139200b3.0","@material/density":"=7.0.0-canary.2139200b3.0","@material/feature-targeting":"=7.0.0-canary.2139200b3.0","@material/list":"=7.0.0-canary.2139200b3.0","@material/mwc-base":"0.16.0-canary.3270effb.0","@material/mwc-checkbox":"0.16.0-canary.3270effb.0","@material/mwc-radio":"0.16.0-canary.3270effb.0","@material/mwc-ripple":"0.16.0-canary.3270effb.0","@material/ripple":"=7.0.0-canary.2139200b3.0","@material/rtl":"=7.0.0-canary.2139200b3.0","@material/theme":"=7.0.0-canary.2139200b3.0","@material/typography":"=7.0.0-canary.2139200b3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"5c72bc76b8ddfb71726f9139d6105a4b108b7174","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5c72bc76b8ddfb71726f9139d6105a4b108b7174/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.3270effb.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-2x6HrbDogya2Xplo3UUIYq8r7/WHZ6Yr+NrIw5vpL/vx+h463d5QPZ/Rb4IRgr0pMrX0HWvrH6cqxKrT1tG/Hg==","shasum":"2653efae0557ce1fcd6fa43d7f35b965fbfc8fb0","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.3270effb.0.tgz","fileCount":80,"unpackedSize":915821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevGWrCRA9TVsSAnZWagAA720P/RN+HlEQ1BzS2P/1+x8I\n5G40HHDIAlRIHTQA1RSQOtUNpiGMV1kwEfKN2qNnBBhcTRGDmIbn0DTz9GAC\nB9NwHcPZf+6jhuQgDCTSlqWQzUM2BaOPvGi3gDYxChLVmb/P3OVdxZpUhsaF\nYY54/gDenaEIJfp9riNQYMmsBX4ZpNvgTcrJJ1flU/YoxEdAN/+bQHAbkjxP\n3m4Fz/Zw/OwyRqGTgB9GDwDA3Hk5YcnIQBs3vTufV8wvGWBR1j+9OXPwRiS7\ncjsv6StF4/7SUewhkgevdLixFdgighlIo0DrfgXR0vUDZRhxLh9nkpNhj+J6\nzAMQwzyDsPflqeZay4vGt0/41jsGU8nGzAGvDkBYPDvKBDAJxw7Bvsr9FtDc\nIzqcIU1Oifz0PUOqp1+0XLOp4/cNWjFXdf54SIKwuoTfbCjW8+AAZ+kA/Y3c\nEHgh2MiUWVAsArBDeiU/u3VAZguXUAKuCWU6fSolSFzkEKZc2RlvQATN4OsY\n/nbyUXOc/gmZRCvl4r410SpGscATv0GWdDPJ7O4VCeUPZHySgj/hrvie8Ggz\n1nl714RZtrin58aTSpZJj3x2oxUMQH/auCruYGRk+GVQRDAMtYwvqOIWOfa+\nbBWi1xM4V9wunV6DbCy5AJPATvg1+jT2zuaRkuAoYgrWPxJ0QLC//L6nMjVp\nCx8V\r\n=EoIB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICVtNmrF8FoSo/LEgC3gTFgOOWtpEyrB5hv35xHkXXzPAiEAhl2XHyCsRwBd0+PU4lwldD3nVMIBE8u6fS93PCZCn68="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.3270effb.0_1589405098886_0.980746763059348"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.832e64f7.0":{"name":"@material/mwc-list","version":"0.16.0-canary.832e64f7.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.2139200b3.0","@material/density":"=7.0.0-canary.2139200b3.0","@material/feature-targeting":"=7.0.0-canary.2139200b3.0","@material/list":"=7.0.0-canary.2139200b3.0","@material/mwc-base":"0.16.0-canary.832e64f7.0","@material/mwc-checkbox":"0.16.0-canary.832e64f7.0","@material/mwc-radio":"0.16.0-canary.832e64f7.0","@material/mwc-ripple":"0.16.0-canary.832e64f7.0","@material/ripple":"=7.0.0-canary.2139200b3.0","@material/rtl":"=7.0.0-canary.2139200b3.0","@material/theme":"=7.0.0-canary.2139200b3.0","@material/typography":"=7.0.0-canary.2139200b3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"27f7d1ac979b6af26982de92c2f2bb7fad00ccd1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27f7d1ac979b6af26982de92c2f2bb7fad00ccd1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.832e64f7.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-YQb1C2Minn4xZzmR9RBfKUEZhqAm9BX7LD/nec/QODF7seKFKnKU5pb56M4cOSQVH2Te2D6CitJ/mVXNiZyP6A==","shasum":"3d396c4f3dbddb25fde5e8486d118034e3d6896c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.832e64f7.0.tgz","fileCount":80,"unpackedSize":915821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevJZRCRA9TVsSAnZWagAAQhUP+wWOEK+IsP81nk6uDmUI\nd9Iv043yY1zIlJsU8FcFzSlV1gPkVNlI8++HDcelJnmwkBdcKhPRJe8h4l/3\nV6aVqtsi99+XD4tb2w3j8+bY7ClYnTGVMdYNs/6VRaFYmjTGcA49a4rxo2Wd\naYKH3pyTV9xX4becl26txZioreHsBroTYqbbQiRkYdnzUTyZW0LWFI5uGqzF\nBCxrL2RLaD3fbkk5mohi/OpYAaajh0IdOWAEjKofxSqQuijeZ2ADFQoixzxz\nLcoSGdpHd38LDxQtFhA2hIYulad39RHIuwHddq0uRU0fyvsUx9n0YM+cjKEQ\noIcjVDloo3fSmGMOeNsKpF2m2zr9mONmruD/s/x+vlr9bcs+74gL0G8vB3A4\nyziTXE+nd6EGDw2sJMIdXvB4ONyX0Jttj5S3fXZO/qYqg8zsGb4RRutPN6Lj\nS7K13GC9LdxXpZqZlz8rLosYC9eTMvYgUY16VpeDM9W6HuddV6/wEFyyQ36x\nxn6yg4sMoH3Zd3BTIA61MXK7RQ74HnJP5Yshnm/pE+gCxbwbJHM8JSw6iwu5\nDYcK8KkJjEXaozQBLs+gMQ7GkzG0Eefl8115l5kr/TLJNvpX1SssEKM7s7FT\nxBSQ0lEwGn+ykPSVRd0D1pJa+G0R9pFfdhrDtaebK/fePCgedV3j0Nr4aReb\n5vUH\r\n=OFSD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFEzXpcR2vxASbu2R1goV2ySihfp0gJfwMhYOYzjU29aAiEA8EeSd3Db1iJO8T3KlqI+FnhvVwW2rHSTF0DZ2/+SsgM="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.832e64f7.0_1589417552538_0.40877945426228113"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.472fc4fc.0":{"name":"@material/mwc-list","version":"0.16.0-canary.472fc4fc.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.2139200b3.0","@material/density":"=7.0.0-canary.2139200b3.0","@material/feature-targeting":"=7.0.0-canary.2139200b3.0","@material/list":"=7.0.0-canary.2139200b3.0","@material/mwc-base":"0.16.0-canary.472fc4fc.0","@material/mwc-checkbox":"0.16.0-canary.472fc4fc.0","@material/mwc-radio":"0.16.0-canary.472fc4fc.0","@material/mwc-ripple":"0.16.0-canary.472fc4fc.0","@material/ripple":"=7.0.0-canary.2139200b3.0","@material/rtl":"=7.0.0-canary.2139200b3.0","@material/theme":"=7.0.0-canary.2139200b3.0","@material/typography":"=7.0.0-canary.2139200b3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"0eb6479ea05a7af0418b4fb939f915e39af03923","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0eb6479ea05a7af0418b4fb939f915e39af03923/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.472fc4fc.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-S6ZRLcG//V4SHEjcg1GeSpaAZlt+Z82/dbc6hPhV62HLSRlLpckXntyehHXKf0cHp9jrFMlNJkgHUUQrEQUSeg==","shasum":"be605eed69a9099988a0fbef768fd3042c5c5213","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.472fc4fc.0.tgz","fileCount":80,"unpackedSize":915821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevLzJCRA9TVsSAnZWagAA/hUP/igwGNICzSFnXw0t1+fm\nkjF88x99V7X2rxgvRoA1YWrLzGge866FRLBvErNYH9p6WLJ7f6TBbegEaCly\niAgkRr6Is9Yp/619bTCmmIcBYz/eb3STAexVvofDoO1QJuI/W1SBhwEgzoy8\nXkZz533kDZopIKj4lBCxNn6fQstkChFQmFDeKMv1pwF+wF0ASLEyl2M+OV1V\naGX+Hq+Ns+RSjmoGyKBcDpfoc6HsMhvEou63jRAS9oDap4xavOaZJ3yJ8PZa\nwI664ZiwwbjUFk5nwvNx4HAxJnF429xUUATNFetQpVgyk3TXe/V9YPbddg0/\naoqf32UttNHalEvPDwBKt/G7+0Q5yq9OyG/91+Lg+DsxUCLaupuxoy+bVnTE\nOAk0gqR5Yb51nq1E1iBPnkoyGNEk3RyOEmwDlwK66r5zAJS+RMKh5yLnm6EH\nBqV2wOsdMf6kHQkV+pJigx9OJ93NBjdi8w0we31btqfgHCE02uutPqmAoMSy\nmz0422MXq6JvTDnUeji3a/oIely9pXutnCOGkN3SZMqLNnOmpUYTXoHXxi0h\nn7u5d8fgcoK0Bel568hS8NUuclLVTTRD76tTKGpAJOGRHxuT0E5uYjCOsdb4\nwDd0KIzrMd8FJb9Zvb51xEoP1vUnntbr7npneHFzo+Hoj/2b2xymtGculqTy\ne8Ny\r\n=u+83\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEy4hVv/ll+XDXPAVBGXwzEXEnOp6pzcP8x3ZTF1pU5yAiBJwQ5Wge6qlRyu4GbbzzMXGrRKpLdjoqGJ+oCgwJkwcA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.472fc4fc.0_1589427401220_0.5948766404628776"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.4dcd7dd5.0":{"name":"@material/mwc-list","version":"0.16.0-canary.4dcd7dd5.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.ad0c0c103.0","@material/density":"=7.0.0-canary.ad0c0c103.0","@material/feature-targeting":"=7.0.0-canary.ad0c0c103.0","@material/list":"=7.0.0-canary.ad0c0c103.0","@material/mwc-base":"0.16.0-canary.4dcd7dd5.0","@material/mwc-checkbox":"0.16.0-canary.4dcd7dd5.0","@material/mwc-radio":"0.16.0-canary.4dcd7dd5.0","@material/mwc-ripple":"0.16.0-canary.4dcd7dd5.0","@material/ripple":"=7.0.0-canary.ad0c0c103.0","@material/rtl":"=7.0.0-canary.ad0c0c103.0","@material/theme":"=7.0.0-canary.ad0c0c103.0","@material/typography":"=7.0.0-canary.ad0c0c103.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"a2b512eab44e739c09fa66cee4f0a65698e697f2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a2b512eab44e739c09fa66cee4f0a65698e697f2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.4dcd7dd5.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-OgPbxIWWE7b3OitMiiUz3ZR8YjA9SuGkrREX2lEBgbDnXHkUxeu85s10e2cojQLAAVBpsGI224DJIJfqkaaMGg==","shasum":"062b62ea713b6223f207900bfdb2aed244072b70","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.4dcd7dd5.0.tgz","fileCount":80,"unpackedSize":915821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevXD5CRA9TVsSAnZWagAAJVwP/3Kr57FyL8vaJGbU1Uzi\nwTTxh8ReLIy/pn1y9g3uce2kVdGAf5PYNiSf68URsTyjF9+RtoaNYLMnCYk3\nyU2a7nOO6auOIOa1ePoz88nbLxq0zK1XsIZlRalmbDAdmv8yOJw7CeZYFw4s\n9YL6TWnqGSxXgTY7SDTZ3ITtuNlMym1Q1gyzApBeE7GY3u7c3Sgrzlt2wc3Q\nDhtX5Qjpdrw+ZAB0ur86hTna4gMGp+9KvROWei0+0fY+2hCCt7Y2vi9lmA+3\nNx4D+eBtlVmafcBM3uWP8ODrulr94RnCYLSuE0IOVqnz2eI09zF1D40nDZLs\nkoNaxF24LH6MK2xiydwDSI4Yh/pa3zYO+fDnxqcL/6rMFaa6FLbP0cMxy3sM\nVN8CwUy9pKdUpNsCn86UVbaVUCSZUHU/T+ol+/kQim1nWz+Hnwx2HulkpC9n\npyCVNOB6AVaUSP2J5AbKPUJAtalvexRZ2DuKt3r58TM1UwAKkztm0fq1YHXU\nvwybwEihSH9jsYtxzA+3bUkCJ8qD7qxdOUdCiaKTc7PtVSWnuwpA9HbXI7vm\nJ6slY3O6cXdG5vDAyuTp5E33NFD7TXgsUsF8bDnRtvzoIosDdpiZYtjmENmS\nSInpzT2FDuZUVNS9CSxNJGh8eWFTxeLzNPGSWzwXLcgCjw6gXFPhpCTxuOsV\n4dFp\r\n=TM+o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA5NXojxFkyQqj15/uw5Ch1qjhjmB1Nb21kTV3Mgqak1AiEA4fswSqlQFl2Zs+G7x5uAeCx+dvUBIR/f1sMrDAp2i4s="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.4dcd7dd5.0_1589473529143_0.4371123624819808"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.bcd3400d.0":{"name":"@material/mwc-list","version":"0.16.0-canary.bcd3400d.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.ad0c0c103.0","@material/density":"=7.0.0-canary.ad0c0c103.0","@material/feature-targeting":"=7.0.0-canary.ad0c0c103.0","@material/list":"=7.0.0-canary.ad0c0c103.0","@material/mwc-base":"0.16.0-canary.bcd3400d.0","@material/mwc-checkbox":"0.16.0-canary.bcd3400d.0","@material/mwc-radio":"0.16.0-canary.bcd3400d.0","@material/mwc-ripple":"0.16.0-canary.bcd3400d.0","@material/ripple":"=7.0.0-canary.ad0c0c103.0","@material/rtl":"=7.0.0-canary.ad0c0c103.0","@material/theme":"=7.0.0-canary.ad0c0c103.0","@material/typography":"=7.0.0-canary.ad0c0c103.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"dad5f0740d5be7e0efe9c5037afabbec57771668","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name             | Type                | Default | Description\n| ---------------- | ------------------- | ------- | -----------\n| `value`          | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`          | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`       | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`       | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`        | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`      | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`        | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `hasMeta`        | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive` | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`       | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`           | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dad5f0740d5be7e0efe9c5037afabbec57771668/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when grpahic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.bcd3400d.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-eZLFa1bEaRJXd0G1IlTUkpGIIZ7IiF/R+Ld1H5AkoJ0gYscLNlAL4mRw/bDUPvwjpBgHpb4+zDgPe39uHik2og==","shasum":"d41c59ae74289c14bccca393a65a5734eba6ffe4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.bcd3400d.0.tgz","fileCount":80,"unpackedSize":915821,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevxymCRA9TVsSAnZWagAAhpoP/RFhmYhb/O0WnrHd2NlL\nPpBjMcdxCb2LXGBojLwFsE0+68NHSb1ClilUC6urZb83j7krqyIhu91MK/0m\nFkvsKXsmZU+kDOf4+0082Xo08VDGG1PYru3W5eSFYMIw/IPprtsXuuS0VHLC\nebnVEVpF5wNrhsBwWljiAWPmodln+W9g1MzffSLAi3vd+6rV06MwdPZkNyrP\nsvQQr6dAXHetCm0YXQdlmxzm10IMnxy3rT1A1qvV+LGnaLaFPBBYlYXEXqgj\n/x+isO8CFn6NmAWM3FV2Snh/7++2RyJVZs5FGb9VKzZMoQY/+8dIMOVudIB6\nTpvIiaRVcNtuLT6sV2FIFlsct2nTryUXjQzADatmpAZw/UJoma88Dphe6+je\nd0pLoBp8aeEU7jS8157wmC13s7//NFoPW+UO60tZPRK1ZYzwKEZ4lNbsTDeh\nRqmzfEVoQK/2uixTfXu/88eh5sLiQ0F+3t0l0KPvYA8HTm+mXcVwGWkaBeIg\ntfIveKHRpssSmBoIRWOtWS8YXcYsd+0C179M5iimfF4Cn60z9DMt/lt3yYFh\nUF3mmz/UEOiZB/C75POYclclJPrXVrLd5poqc+gCR+s3VtXwfksF8Y5dHMwN\nS4rUEleGCo+KXfTJlEPsDw6iW4lWWPklb/gi9I/dfqzezOGbssJpv+bhRkWx\nT/lc\r\n=nVya\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFLGwjzQN4eN6fUR6zTfpVT3OGmIpc2nQ/WgUJFFBu1tAiALPfV0ajsUrVOk9BQ2BS+K7/s8vQ+Hbk5OrKEPfMt2Hw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.bcd3400d.0_1589583013674_0.2527999725894512"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.91f63179.0":{"name":"@material/mwc-list","version":"0.16.0-canary.91f63179.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.ad0c0c103.0","@material/density":"=7.0.0-canary.ad0c0c103.0","@material/feature-targeting":"=7.0.0-canary.ad0c0c103.0","@material/list":"=7.0.0-canary.ad0c0c103.0","@material/mwc-base":"0.16.0-canary.91f63179.0","@material/mwc-checkbox":"0.16.0-canary.91f63179.0","@material/mwc-radio":"0.16.0-canary.91f63179.0","@material/mwc-ripple":"0.16.0-canary.91f63179.0","@material/ripple":"=7.0.0-canary.ad0c0c103.0","@material/rtl":"=7.0.0-canary.ad0c0c103.0","@material/theme":"=7.0.0-canary.ad0c0c103.0","@material/typography":"=7.0.0-canary.ad0c0c103.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"0e5622d76bebf9f0f121549fb3dfc9bce15378d5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0e5622d76bebf9f0f121549fb3dfc9bce15378d5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.91f63179.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-lNo80ljphN87OmSClt6h+5gFDLaDa+gpkBrwGTUtcYncakP4HtETXOmeaEtQ28iG26Kde5RotOs//aB2A2O++A==","shasum":"757e12483d1e47ef2562e5436fc88f3411daf529","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.91f63179.0.tgz","fileCount":80,"unpackedSize":918434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJevzUuCRA9TVsSAnZWagAAu3gP/id73KHMfJ4hrNlz+XTX\nQQ2b7Zxt5BxWApm6EJt/pu8Hro+zWqwTNWWBt8F1owMoktd8JFC0oVc4Y52t\nCuODkM6qpXXQTE94AjmSl66+3aRBrWGG4PBvNYxrR0kb42yQVYxqYLzP2QA6\n/1AajFOxftT3B/ppEViOXEv+sT1xQY0VOhnBME3d9dbT7VOaamUwoOrxvLh/\nRIoiAty3Vk3mimYpy/Qo2/UsdScqnmWu4KY67vx8n6nGtEV6XohuihctSVZG\nJTpFVS2kvwI+oZ5EPB3AVVsqnSZt7nFYcnRGSJZTFaCf6ZdnR1dwhBR15pZC\nIS1ViWROAeinY0nw3hL81+5ysl3d4xbxhfwVcILs13fClfQgMFsav/rV0Thb\ndhG2Fpi5b/ficFHC+5//ZJfj+L1N4nx0O/pCpiQXrYW2oXYpe2B0UX4dSwvm\nD62RdLBJIvOh+sYxGNQ1jmuBDXi/eXYRMsSHdBPnr0g6OwrMxaggMxoqevlD\ngli94OLBXlPA4kukBXDc1F0U3cxfvQzMtV0Q6E0pJUDrvMrmZCeBpp8SNdtc\npqRLXg4mGP5QYrDCbdnyZHVSLBdfjHnOnS0Tw6wMr7kLDGDAA4bM+mLj1EdP\n0A617cYW6z6dcDDYoImZVv0rEuMXB1re/BKY1v4wfkkeScIq52KSV/7WoVjy\nVvMY\r\n=uQz8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDtPm5OXn+VJTrjnxYmWQYh46YWy28iRdBik/3ZWwlYIAIhAOWeZJ3EJPs4nSP9ybVCbWw2/A/hGgsFy/J4ZxoAJMLg"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.91f63179.0_1589589293335_0.3757690563618328"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.b8aafb56.0":{"name":"@material/mwc-list","version":"0.16.0-canary.b8aafb56.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.fd8f8f2b7.0","@material/density":"=7.0.0-canary.fd8f8f2b7.0","@material/feature-targeting":"=7.0.0-canary.fd8f8f2b7.0","@material/list":"=7.0.0-canary.fd8f8f2b7.0","@material/mwc-base":"0.16.0-canary.b8aafb56.0","@material/mwc-checkbox":"0.16.0-canary.b8aafb56.0","@material/mwc-radio":"0.16.0-canary.b8aafb56.0","@material/mwc-ripple":"0.16.0-canary.b8aafb56.0","@material/ripple":"=7.0.0-canary.fd8f8f2b7.0","@material/rtl":"=7.0.0-canary.fd8f8f2b7.0","@material/theme":"=7.0.0-canary.fd8f8f2b7.0","@material/typography":"=7.0.0-canary.fd8f8f2b7.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"cb4a37dbb03476df8ec3422cb9bff794468ad220","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cb4a37dbb03476df8ec3422cb9bff794468ad220/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.b8aafb56.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-mlmdJeAx25mrXOVuO541sj4N1Q3WmVADbbsT5mP2bYsT6rPWgDMSIIEQ3Rf6huCUUuYGtdEfKzFXIETR9KOOZg==","shasum":"8c2c4ada34d0019735e1da42ed1cb077d41832b5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.b8aafb56.0.tgz","fileCount":80,"unpackedSize":918434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewtSjCRA9TVsSAnZWagAAUOAQAIvrJsOy5aUfPo4x+whP\n07EWT5oKd5KikBpWQVvxQna3kRHmdRYaucET6XdzDG+DdvUV4RFA91tAvJD0\n11uVt91q5JzwcipzkbZbU4YvxStsWojd5aLeCL2OzFONrBvX5ikO+JgNosgu\nq941hrDb0SkevzSdBbJA7SUve7xUUo8PtY+hCVmshVyeaQpD/5G1sKOPgi3Y\nr4fA+Be17WTVB5LsaOLLGY7Dz3svi+Lt8g+tT1rjHJcPfulKsxyLTOtSzZUF\n4SZiqWoYEuBqv3zhX32VkOeowzKhRyb6GpzwkUrwIrAdDD8zzEHOJNbCLNXl\nBzCme7ncbTtWZB4dtrh2aQqgVNlzJLS9AmsMxCR0bF6W0agBpFxjGH5jp34k\nmTlWCROK5X0PYt1A1mG21HOZ+CLFfOplvDTVRLnL9yjiDQDQekmBrSpvVvxp\n/RamYFie3bxxUxNAdNFbsAZi1uygkM3uyHFuKzTSBxX5UJhAZ3Qcj/HLglzp\nl2v8fAVnuqExfvtUDt6PgxbCpjp6PbfFk4kxIZDV3mmS7hCbI8aU1uVF7H/G\n368VFloCYkmzg9q8pJ3/tZT+oCvKsI2WlC0+8ozrToE4YLbyjBQex5r7QP3s\nvj+fq8Wd8Xb3n8ttR3bgoK6/GPe1mPjsRDb/rOeKbJ6Is1N/aWqZ7PpfHvkc\nlbGv\r\n=6qzT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCoADBBWfMNTEtfGFVUPfN/IDo2ZBQRh0Y96aoZO4xHXAIgH2H23Wqv6Mk83dItS5vTfwJyKo0xYWDaOYQZL0Mi+Dc="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.b8aafb56.0_1589826722759_0.7740424707743134"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.a564b194.0":{"name":"@material/mwc-list","version":"0.16.0-canary.a564b194.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.730920fbb.0","@material/density":"=7.0.0-canary.730920fbb.0","@material/feature-targeting":"=7.0.0-canary.730920fbb.0","@material/list":"=7.0.0-canary.730920fbb.0","@material/mwc-base":"0.16.0-canary.a564b194.0","@material/mwc-checkbox":"0.16.0-canary.a564b194.0","@material/mwc-radio":"0.16.0-canary.a564b194.0","@material/mwc-ripple":"0.16.0-canary.a564b194.0","@material/ripple":"=7.0.0-canary.730920fbb.0","@material/rtl":"=7.0.0-canary.730920fbb.0","@material/theme":"=7.0.0-canary.730920fbb.0","@material/typography":"=7.0.0-canary.730920fbb.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"88e988925ffe167fc3916968d88a99b85d5f0319","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/88e988925ffe167fc3916968d88a99b85d5f0319/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.a564b194.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-XiRvgczqlHUJ4u6VkiCu/DyEwlATlMarLQ4wrMc7f7Cu6mLbHEFFmxqu7T88LB0DIVj0j+3jZRVjtPukWY7dbw==","shasum":"1a31e1d2d36cece3f51dfead406a8be10b1d6365","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.a564b194.0.tgz","fileCount":80,"unpackedSize":918434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJewxRcCRA9TVsSAnZWagAADd8P/jSIr9vuckS0yaOQWt0Q\nKWunwED5C53NWKUwCvYuX0PMxsAKbQjUDtUOtRRfB8vKo9e5t+v/pENoha2A\n8m22y8viKLVEpl0s/ooWFnKVi3v4Vm4PP8BlFGTDAsRxrhapYGK3cmfhHmnU\ncq86dr/TRv6vto0mHoeH5EdwBeFd8Lj25Y8F109S651Vp7k5iIPTe5o2KLru\nK+NEUn5ZB6ncj8/gS5Tjk4attHvElxm64CtCH6KtoolHRq5vJ3jMJkMYs7q8\n1dby7403sZTkuhOyeRCwEbLz2PD6eGXd/2eSBYUTZkxWCa2vcy0HkbjLWYP1\nLmBCcj66to8difbaezmye7jQo96+uAVdt3fIwwp5KNCxdqxUzgSuqa2m5GFo\nrOXsIxgenghcvZG8Ve7SdQOC9DMImxFE1MEIoyTmKV6z+ZLaiG/lC7whHaTr\nV01DZWhxDWJ/mpWF5dKcOFdB61QmN4WmZ/WIdsel5jZO3novmguHUzni7RT8\n3QzA8b5t6jJ6MdDI7vetGecPu206ZxT3Mt3TeivWe+sx2pxyyHryfKEIF/7u\nVEZ310Akh8Yx4LAgF7mE4JyFhBkDybdkcqL65eZVXtdeZKkBqPOiykg/wC5x\nhS2aZKgiEhZ7+2pEGWprQ3j8YpySknVyWMl9rrdRdq8xkyjwVnazg7yi2FHg\ndkV2\r\n=K2Wv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIECyp2Xz9CqEDaH47wflDzjkGBgKUVfswQx7mYmBsGd1AiABGNyrKXcoEGjdjX/AUWT4Ar4NHaBdXjmDQNQ66Kv6uw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.a564b194.0_1589843035888_0.08319337646752634"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.ef56465b.0":{"name":"@material/mwc-list","version":"0.16.0-canary.ef56465b.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.730920fbb.0","@material/density":"=7.0.0-canary.730920fbb.0","@material/feature-targeting":"=7.0.0-canary.730920fbb.0","@material/list":"=7.0.0-canary.730920fbb.0","@material/mwc-base":"0.16.0-canary.ef56465b.0","@material/mwc-checkbox":"0.16.0-canary.ef56465b.0","@material/mwc-radio":"0.16.0-canary.ef56465b.0","@material/mwc-ripple":"0.16.0-canary.ef56465b.0","@material/ripple":"=7.0.0-canary.730920fbb.0","@material/rtl":"=7.0.0-canary.730920fbb.0","@material/theme":"=7.0.0-canary.730920fbb.0","@material/typography":"=7.0.0-canary.730920fbb.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"ebf59585445179b39ed7a77dac598972ce48066b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebf59585445179b39ed7a77dac598972ce48066b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.ef56465b.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-pJPWCyuJIsYNWXtKC26y/zTwSy0WK359y9HcRpmDz8i/yzDjmr/7UZlBcT14ejt12sK7kbAhJnrDBSGUvbEOxw==","shasum":"c9184a612d79de191ad4aa5a27952329358effcf","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.ef56465b.0.tgz","fileCount":80,"unpackedSize":918434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJew1b/CRA9TVsSAnZWagAAmOcP/0CHED8J8BHSmWTjWvgS\n4YSzVtN/qwImCMsTLo+bZgKjcm50kWvH8kSC/nrNETn8fhCmfHREIpCjxDyp\nwuaEYoZp3SpVzkAAHZBpgMqvtOvbkUv9ikBsm+BstBqn4FcjAn1WOsCxyv9H\nNhpwRmJS931eRn/wXPFej9PD7Vkwv/Hh1EDpT1+GvgQCiPzjotQ2Nzr3GKX+\n5MWGydok7teFG1Me06lsW2QF/ytMxlKJjBbhNsup5Mu+EioDS5PavVGQjdU0\nBkmQmSbugdy6Ml/yz5Fv4nIlf9XDmgNHOaKanIvPopDEiTxsm6bNWW/TifQX\nigGJEp6gLsdbhy3huyX5kMwtu/SatJxpTFS0w7lNmopby9+WRKAYkBJSa0TH\ns3vJf54K08eq42/Ur2ZZnV9YGb53WaCc2s673zpaVnOG0HB8mbJEdRCgmH3D\nAmdRJxE1JNL5eg8b0bfgG/ci3kZNNOZoAWgn9MovqmzNA+ETaAaP1LtgVnWV\nb01NfqollfghXDqIDZ9NqnaGlW8jAgzIy16JgG01u1M3vkUgYPsGc2PKkzcm\nNCNEee7ujkuYr97SD0nQu+gsgZgpvMal3jPgKlbuA+FGeFvPQq0rrB1rHqfx\nxmY/wtEljPs8NFapYdSUZ/5uvgawX8fI6PDxH99tI2vgUBgD90p3V9RIJYiN\n7zE4\r\n=s8f/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA0QJEVAn07rLnx+8s4wMXo+mtZBbEb5yjYItynvAHVUAiEAr+yxD8SFqMsYLWrW67i5aZRxcmteDIx+aEih2gCFJYw="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.ef56465b.0_1589860095135_0.1790358908563623"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.c22dcd71.0":{"name":"@material/mwc-list","version":"0.16.0-canary.c22dcd71.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.4497b86ed.0","@material/density":"=7.0.0-canary.4497b86ed.0","@material/feature-targeting":"=7.0.0-canary.4497b86ed.0","@material/list":"=7.0.0-canary.4497b86ed.0","@material/mwc-base":"0.16.0-canary.c22dcd71.0","@material/mwc-checkbox":"0.16.0-canary.c22dcd71.0","@material/mwc-radio":"0.16.0-canary.c22dcd71.0","@material/mwc-ripple":"0.16.0-canary.c22dcd71.0","@material/ripple":"=7.0.0-canary.4497b86ed.0","@material/rtl":"=7.0.0-canary.4497b86ed.0","@material/theme":"=7.0.0-canary.4497b86ed.0","@material/typography":"=7.0.0-canary.4497b86ed.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"6a706d54228a517263b38bfc1185c9ebac4aae41","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6a706d54228a517263b38bfc1185c9ebac4aae41/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.c22dcd71.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-ebYr2W5zv+GdtiG88MEMXBPKRy9mscfs5mwEW14fPvyn4xASuT10GMcNnKMFQXDbemDh1WUYUSJvGKdrxh7pAw==","shasum":"4dbb8bab70a014d62b4cd5e1cf6d89adbfd8e8dc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.c22dcd71.0.tgz","fileCount":80,"unpackedSize":918434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexBZbCRA9TVsSAnZWagAAzx4P/ipPIl5CqKQI0fwRuLfd\nWYFgAshAv5H6vtlRc3bWhzivOmEfUv3ceFhgzeQMOp4SWoIw8+wpFHERVml7\ndXHF5/GzqHO57XGrCGzg1bxfa1oM0U+z/+jIzkoz2Ntt+0Fp4vgLe8zKlkzp\nwJpho80dBUCKE+j3YHHmZX4nqwUw3SRZvXB4tPUjGQSlAOpPQeorvtFFipPI\niYcoe6LZDK4YvLm1lQeDI7niqeq4TgXz/aj1ofgjoJE7ugf/JAfjpPg2fM4l\naR2EsSFuANkYVAopbecFDMmPuers24EpbkGmXCKA0jGGgq4FH9SpCXl9ANy7\n+dYvYR404huiqjp5iSt5JpVRw5mGkVdMz5b6CBiq4vH9V+LW64+Qv/HIVBRJ\nOXGKLvGaGFNs3KAHAPLZXfjuRQZ/pItxJSr3ZsIAF7Qxv3PgZcF/iGpq5TIr\n8MIqyz6rcz0yAFSdtRcHZrb0RUutJkxXzo6E2UOq7Xa6JkTiV11My6G9A1fk\noQFwIBTZRtKolaUJY9sMNd03P9R9V4QKK8YUTeGDvxeWm5Ec3twJivQDc4Wx\nPkThoabJgovswnHy6XMnvtSWOj1GrqBNH7fdw2fINEJvm7EhxTsFAmkWxH+a\nuzdLwX4pZD6zDhZa4+5h/BfZgOmgW/9wyxyt2dJRkgxb9l3Bmw44Vo0t0xkM\ncWuG\r\n=b5ZA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCqNGGFyGukILfgzPun0WxxjPZlsgYewXkSVLSidugNcQIhAJj2eG0IDap2c0TCaEixW1c/hws2KFu4X/0X3nP7ubbS"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.c22dcd71.0_1589909083348_0.5008748728059429"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.6eb62388.0":{"name":"@material/mwc-list","version":"0.16.0-canary.6eb62388.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.e3eacefcc.0","@material/density":"=7.0.0-canary.e3eacefcc.0","@material/feature-targeting":"=7.0.0-canary.e3eacefcc.0","@material/list":"=7.0.0-canary.e3eacefcc.0","@material/mwc-base":"0.16.0-canary.6eb62388.0","@material/mwc-checkbox":"0.16.0-canary.6eb62388.0","@material/mwc-radio":"0.16.0-canary.6eb62388.0","@material/mwc-ripple":"0.16.0-canary.6eb62388.0","@material/ripple":"=7.0.0-canary.e3eacefcc.0","@material/rtl":"=7.0.0-canary.e3eacefcc.0","@material/theme":"=7.0.0-canary.e3eacefcc.0","@material/typography":"=7.0.0-canary.e3eacefcc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"abe9e974102de52260c3cc1347abe8592e0d5e7d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/abe9e974102de52260c3cc1347abe8592e0d5e7d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.6eb62388.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-5ETR0XVfCF3nZTUiDxl0yq9zG0fEmDnuJMLg2JJobPadFmFs+it2U2UFVi+8lnk7XFyhVmgq1padkxJcS91qTw==","shasum":"1a23a4b50d89c714a2243864f2de0f8f79d1208a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.6eb62388.0.tgz","fileCount":80,"unpackedSize":918434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexEPUCRA9TVsSAnZWagAAXq8P/Ro9i0bm9+hxR3iAXPlo\nKEz9eDBVXx4NgaVIfi1OBngGE3acMjS4Y6oc5fuR4nlOvqIjX7rpLcv/Q1my\n+omeNVB78pUEFnYUk59rVkOj5kfb2eqPohCesw/ySUFgOveRRCa62+iM6hBj\n5t6pu5825TOb5WOM0creScJU3q1hjJNNyicU+6er6dFq10GHRI95pp4twklr\nYwqW+mx8VABi8twf0g4Y0+UBs3IJLBbJN6VHDsmhqMV5whVxPXUVv5esPHba\npE9YByxj0h24prUPaTvn+AMMwpM1SXJscsBkQ1avuJh3F+q/YoMExdIDp+9F\nbcqE+NAtqaqQCl4f/Z2g/PqZLgoaaSqT/kqRh4esoxc68A0AecjyGZ+OwBiO\n2kY7p9iPpMVRerXJneyLspPpLNYtiv89C8+veLZepIV7WbflYUELRbh3Mwov\nHhosPMzFHqCmE/F2fkp0GZcDOeXE89eYwZ1Nv1GaAbYrJ/vtX4fT93j97EN9\n0piCjxjynJ8Uq95kPx2qp+3IIbPB8xfNZxO5q2mdMTy3NEooR5Mao5HNrmFK\nseOet0nqb/pNH/olfpU6wc8bfVkRY8FcRuePY5rgSO3M9m7ZCvaLauq1qAA3\n2SGJkvu9ysUoAQIoXNecYCJs/j3hYMcchjoYt4JYl2QbBYqnBfUjeKkwlD+a\nkblw\r\n=NGEI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZNmT2AyFKVwz7Hi9os5IxI1Sa9DZXhz3vIPREeobKXwIhANoeZuYxu12IwN14M2opfJcMoYSh0q4UKuNPYmx0lhgo"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.6eb62388.0_1589920724483_0.09672664866690961"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.9bc3230c.0":{"name":"@material/mwc-list","version":"0.16.0-canary.9bc3230c.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.e3eacefcc.0","@material/density":"=7.0.0-canary.e3eacefcc.0","@material/feature-targeting":"=7.0.0-canary.e3eacefcc.0","@material/list":"=7.0.0-canary.e3eacefcc.0","@material/mwc-base":"0.16.0-canary.9bc3230c.0","@material/mwc-checkbox":"0.16.0-canary.9bc3230c.0","@material/mwc-radio":"0.16.0-canary.9bc3230c.0","@material/mwc-ripple":"0.16.0-canary.9bc3230c.0","@material/ripple":"=7.0.0-canary.e3eacefcc.0","@material/rtl":"=7.0.0-canary.e3eacefcc.0","@material/theme":"=7.0.0-canary.e3eacefcc.0","@material/typography":"=7.0.0-canary.e3eacefcc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"f02ad2a44567ccdf91e52b6e07f5986d49d2b375","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f02ad2a44567ccdf91e52b6e07f5986d49d2b375/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.9bc3230c.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-TVIE+m9GPkxiIIeNh/qwkUGLFUaHbZ/QL4jGCsPbJhBRLJBBp7Jb5eMnIBo6+m48MpcgnW7OxMFa4aDsltX2LA==","shasum":"09df75aa8ffae47a496eb41382f1e867796c3c34","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.9bc3230c.0.tgz","fileCount":80,"unpackedSize":918434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexFIBCRA9TVsSAnZWagAAM5UQAJ3wCeAG585w/XZb3pVU\ndOJjOR7MS05RZm2w165oICdK77qyYuOx6q/FDX4tX29jeFZAc5+urN2h+FXk\n4jR/VVMolDI04xFLfi4uIvbVrTs53W8R891Jf2GIuTQCJx5btHm+2kkStf2i\ne/kl1/vfVkrEf7W7U6+PbyV3V+58dyWJNy4TUxNsVkeD3ky5awzdHHzxfqgn\nf6Kt57NWr+cwZdbaR7snYeymT8mV3zMY+aYJm2Tq1h1luEg+Z4bWXPuKoH0+\nlCkMgyCwjusdU0Je8AsbIuAmPFYX86LGTQYNxxDkJSLDZEwq7flvF+foiJnn\ntaTTrjvFDPNn+ZaFIeryXG9lX1RuLEyro2j1Gmi5bOZRVXtSNv5dp9e2Sid3\nSeX+g5XFJ5/f8cUK8LJ0ta/rqZF/rMb1cpkOaOk3k5kufsLHbyFw6id1wCZ+\n+y+6slmzCzNOkmanpkduxGYkkncBrnF3cdgO2As4HeOdO7lFfR5eBCratRMY\ni3jEIxav4/JzLjbCHdXsg0SvUp0A9rumdWf4K1y3Qm6N9PCY2IZa0DQ92D03\nr5MCx+djA3Krs74zhy8VtmY0HD7SDUUVCap1H3HZRMQMEP/tJd3W1UyzU/y1\n+tsrb7soTIS8BgpQZ7iLrah0Ovg6pN+3nF7lvI623AuAukEUh+bkCdISpiy9\nEduo\r\n=RT2s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHQxBUnC4o/3iAxEs/RVkrjzPMjO7lbDNr8pmIlbF7yUAiA8MDzRPu8LBP95NE1CCZasWpKuabU16j68XOC0ipAiBw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.9bc3230c.0_1589924353355_0.5562108402310433"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.421a6856.0":{"name":"@material/mwc-list","version":"0.16.0-canary.421a6856.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.e3eacefcc.0","@material/density":"=7.0.0-canary.e3eacefcc.0","@material/feature-targeting":"=7.0.0-canary.e3eacefcc.0","@material/list":"=7.0.0-canary.e3eacefcc.0","@material/mwc-base":"0.16.0-canary.421a6856.0","@material/mwc-checkbox":"0.16.0-canary.421a6856.0","@material/mwc-radio":"0.16.0-canary.421a6856.0","@material/mwc-ripple":"0.16.0-canary.421a6856.0","@material/ripple":"=7.0.0-canary.e3eacefcc.0","@material/rtl":"=7.0.0-canary.e3eacefcc.0","@material/theme":"=7.0.0-canary.e3eacefcc.0","@material/typography":"=7.0.0-canary.e3eacefcc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"caa535baf074d026cb6a6f50dad38341320274de","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/caa535baf074d026cb6a6f50dad38341320274de/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.421a6856.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-IQ+Fbg+mXS4zl3FaZ159XgWqgCQ2btFZnVk2yfx0FM62Hb++8EvpWncRAwLGFrVjSTFwQBBvR3VH7pVcy/qtOw==","shasum":"ebf0931e1edb7b2f6118f64ee2de337b09d2beca","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.421a6856.0.tgz","fileCount":80,"unpackedSize":918434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexL8TCRA9TVsSAnZWagAAIJ0P/1aX3J8M74JJl++qXhxQ\nlXzYlRHNV1siF4d+lBE4wCb0PPDvkfUwQ7Y/InNUh/MF8yE1GKQMSRzj8WS4\nTWhZTgfpoKXbUXioMa4ZsXfKhlnGdHgjg368mc3ZPyqDTgUgmh0GkjmQGU4Z\nervc9Db1A8uZOymCoWqENEjgGBzchEgofK3CAHmwaLJwkFYPhnKGzJ9w0P91\nsl/83z8rD2g+RtZwKw9EiK7iFnApKNGxmGe7aqvJgo7JJr3+JRN2LPDH7lX6\nRKfq4dCdDk9HVpp2q+hLDinzQYuL2NgqnqMb6bqlwGFPSpuoeNi0iWFYc510\n0NYXz9CzIIymFLQIduYEtrvmPpJyZMrp10cGCdDHh80bRkpKUExdCu+t7KZQ\n+O9cGqWqeEu8Y7Ot298zQ2afL7kUsDoEulNnzGj9aLa4v6xlCu10aoTud7OL\nkyGyUzWGxAJANDddiQigkCQXVMe791oa1fJXxhj9kMvBpbHnVbN6I120kchu\nYliRAlzFXGS2WFSOGrv0eEXbm9eBugGVTozabdA9AnzdMtfJQtTLZwGV0AoA\nGAgUBGnqk59HEN7y0eLqH9NHbHXVgjrJmxEGsicpckUI8sZBnLkUFQ8DRzze\nm3iGD5jPUAwsYlv/3dIKxsIsF35I+WbWcsBWFGTS+Fi2OGCxbhEmvEFus2Oc\n5n+B\r\n=kzLk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCHwSJQ2V+gazdZkXONF7Eg4nk9Dx/INbbpDoQYycoIlQCIG3YY6RhOZqQIEwTxSAWmhjArlBf/75qyYmvexiU8GUl"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.421a6856.0_1589952275282_0.8411360580422091"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.761aa6f2.0":{"name":"@material/mwc-list","version":"0.16.0-canary.761aa6f2.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.e3eacefcc.0","@material/density":"=7.0.0-canary.e3eacefcc.0","@material/feature-targeting":"=7.0.0-canary.e3eacefcc.0","@material/list":"=7.0.0-canary.e3eacefcc.0","@material/mwc-base":"0.16.0-canary.761aa6f2.0","@material/mwc-checkbox":"0.16.0-canary.761aa6f2.0","@material/mwc-radio":"0.16.0-canary.761aa6f2.0","@material/mwc-ripple":"0.16.0-canary.761aa6f2.0","@material/ripple":"=7.0.0-canary.e3eacefcc.0","@material/rtl":"=7.0.0-canary.e3eacefcc.0","@material/theme":"=7.0.0-canary.e3eacefcc.0","@material/typography":"=7.0.0-canary.e3eacefcc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"2888b72f42dfca39ebb17e6fe3df0f964d21febc","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2888b72f42dfca39ebb17e6fe3df0f964d21febc/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.761aa6f2.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-q6y4GmXRPcyOmFhMCo9h48iavmGd1pxWD8tTtSNcTZU1qDLAwvvnpSvum7FkkYSXm2p25GG1nJqarMkCnAxFoA==","shasum":"55a4d99d89298aba479988476880ae05954816d8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.761aa6f2.0.tgz","fileCount":80,"unpackedSize":918434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexaGuCRA9TVsSAnZWagAAgacQAJ570LbeIje9AbC2r4+x\nDae4vAZ8/NRvpNrPlNNPT9Hc8T7l+r/QOn569GXFbYUb/lxQ1+CmqSfLgLHi\nEn1QzostiCfV1EyaNBTbiOBKpj+6mOrnHrW4ag5PyHFWMV37vSsZYxQ0Q3yG\nQXnC3Pc0Gsh/0r3TTKt2TyeZ9ILf+Up3eTF2QGEnld2vuV+m8l3eCt4qFjWm\n2vbdtT3N8EuasJKvWcAvRlMbga5a/3psJXFLiTJVEW+BVjUYFzqGYDXr0T81\njhfgV0oWgHbmeM1uF6dF1jshwgzhlvCFb8GfhVCPEMLjSbi2nHuqHxtA9FD9\nHCoOgdCVY+R4GBmC/69khpbTQ1XsoOhG2D5nvMcFMhiHxCbi3Yv/gjlXjPHu\nwvZzM+sAt0VlSlzrNW7jElWS1+AWA5+WqSu5d1eLEtfi5wjnAR+XDmtvv32n\noO35ZryYLa2NL+UFNWWJQ7aVdvo2qVI94TrxWNuAnHEGu2JZ17a1OK8yNPMp\nikOLc1TmULOsxINfjU74YtXB8ZOkK0w7f+kL187R36eEVAwawcsVL3rDWUHM\noLtpzLpbyUtqJQy6i2ZCoX3MVp3r/quJFplV6Ep+7uWRkPWB3gMTp5VDFeiN\nGBwUqN/WYnniVx8hbqe/DOZus57vr8b+aEwrZ/7eTXRz2SU6PXblqbnNX0h2\nMeh5\r\n=kZrU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMcIlOZZ3MDXIDrcBONVfXRsNTGhfA04hszsLduAURswIgAroIy4Trq/IRSvGXam6ugqrPudMkGHKaq1k//hCpvf4="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.761aa6f2.0_1590010285825_0.7369096505385515"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.f8654c40.0":{"name":"@material/mwc-list","version":"0.16.0-canary.f8654c40.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.4ebce8d78.0","@material/density":"=7.0.0-canary.4ebce8d78.0","@material/feature-targeting":"=7.0.0-canary.4ebce8d78.0","@material/list":"=7.0.0-canary.4ebce8d78.0","@material/mwc-base":"0.16.0-canary.f8654c40.0","@material/mwc-checkbox":"0.16.0-canary.f8654c40.0","@material/mwc-radio":"0.16.0-canary.f8654c40.0","@material/mwc-ripple":"0.16.0-canary.f8654c40.0","@material/ripple":"=7.0.0-canary.4ebce8d78.0","@material/rtl":"=7.0.0-canary.4ebce8d78.0","@material/theme":"=7.0.0-canary.4ebce8d78.0","@material/typography":"=7.0.0-canary.4ebce8d78.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"3b845b0ec744d5631e466e04412254ba2fba6ec1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b845b0ec744d5631e466e04412254ba2fba6ec1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.f8654c40.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-GjSTQNbgW9ohCqJLjscwaEjk4Q+sm46BKidsqDW6/dpV2nBB5qYUhJGqcwaJEbsLPtKv59bzF8XIJIthXVhOkg==","shasum":"d3efbc3c40cf5763fcc5d46bb8828dd699748079","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.f8654c40.0.tgz","fileCount":80,"unpackedSize":918434,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexaPdCRA9TVsSAnZWagAABisQAJHKy+15KN5SvNr7CaHz\n/1+3v64ZuzKk0QmR/p7Jo2wMg23/S2SubikOtE7/unipAPcbvdQ/505ob0a4\ngQV6KYwLjk7qj5tg8yHbpJaOigv1y4adikFLUv5d31fzhQq+ZFKOh+WZqv6a\nfWU9pRhswlxjB/Kliaxd2+pDToUaOwckyKqkXp6nuWEtnkoY/l8cb4IzNrIC\n55lZuksQBTrNgjjXGvSx+4AbF3AUaoi66vCclnqrudK35N6o0AlzDIodaJvz\nRqPeASO0czFVEmjhbNSSwS3yvh5zQhv11i9LHP0CRKD3QFrVPq0qzkglbTWo\nQmd0RQ6livi481ocnb6rWFpZDhx823MQHun4vYathyI9S+UErHeeKhHEkdF5\n7C5KL9Ztv1SRFDfnn/9OpUuTatVPWQEDT4CMV+fO0hUOvWpkVyi5EA+5au42\nEzM8nLg8VZ9Rc1FvN4eUIy4yjD/cdfK3bruThp/bdQbysZShYLX9rZxVYhSd\niDywXJrh/yNDiYno7Z8rQYgUQefgTVDAuyl0PG7GYXdWZ8o16qQUvDisk8zq\nOTc3mGJPNkzceQpQLJt1cmstz5QRSttf33R0h9dPs0C+DSCfKqy6DtRgTi/1\nZ6gVvfHgUtzrb3SF7l7idCkODjGodE5zBTeYadSbFQHAyV53F/IpDtBvPyE/\nvB7Y\r\n=2wA0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCH2JcgudJRTI9qCAnd9KU6488ReGFJ33OuQNODrABtlQIhAMEQrd9+PipQsYwyMADaqxnXwQqjymt8NzNfM3/F2WEa"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.f8654c40.0_1590010844192_0.11471603224432969"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.05f3853e.0":{"name":"@material/mwc-list","version":"0.16.0-canary.05f3853e.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.c67667e8e.0","@material/density":"=7.0.0-canary.c67667e8e.0","@material/feature-targeting":"=7.0.0-canary.c67667e8e.0","@material/list":"=7.0.0-canary.c67667e8e.0","@material/mwc-base":"0.16.0-canary.05f3853e.0","@material/mwc-checkbox":"0.16.0-canary.05f3853e.0","@material/mwc-radio":"0.16.0-canary.05f3853e.0","@material/mwc-ripple":"0.16.0-canary.05f3853e.0","@material/ripple":"=7.0.0-canary.c67667e8e.0","@material/rtl":"=7.0.0-canary.c67667e8e.0","@material/theme":"=7.0.0-canary.c67667e8e.0","@material/typography":"=7.0.0-canary.c67667e8e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/47fd7bad9cbebba6f27bd4bc85aba3a4fe6dfeb4/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.05f3853e.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-0Sz+8s9RvvQJWSe+0RcAA0woDD2GnIa/CKhiQOe/qyJtCRfLNzPSvPLTO9WL0YhxpafU9SPG3q8j41+sthvLMw==","shasum":"ed0ac7f9f163f40fd7793daf89450a21da9ba49a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.05f3853e.0.tgz","fileCount":80,"unpackedSize":918485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexrtxCRA9TVsSAnZWagAA8ZgP/0s5VUkaoNmUhZUgmZFG\nobxm3s3MXo/eamIhGcdRBheI5DW452PdGycrHkhYpkxto125g5/90mdhelbs\nb8MLy+nS07KpLvBvBs6t8PKCwSbzt8ykMZRR3/q35U44j8tEPhe+vDfNyNZA\nWckZnIGz3YtlbDCq4bRVyISZBV4nL6AZdcI1USYBI6HFgcdic5Fd3CGQkjP8\nfRMSLy0wYwKPyg1dW192Z2LEvsIezV+y8EFnagu+kPOUyAdt3eTJ2ZXIqgMo\n5X2nd9lBswJEGd8AoVShQnzpkCsmbBlkjl9QKq90d+EaFQvaw5NrGR1OjBkU\nNaH/eticFM5vRvM00ql4h/iMxc8KrPK2H/HDUDCJsJJWB46vgfrrHJbzEeg1\nC7cktlc+mCxq69TYw4vHOlk8XeZi7eMg0WYUGI+z1KJrlW3OLbk+NWn9vwYP\nE7gJyzATAL6yzxmNqNtKRj6j8D0IxeE41H6y6jpreXuSiMWxsTPV7Lmyl2tA\nJhC4gQ7urpEze8jGjWYk3yNGBQ0HKgUOL2Ea2E1QV3ADuuC2oITJT0+XY1U5\nfnCjAddcBzeRceR8CmSJyFFdSw+A6IAVLvOMB5XYsNMT8ykeC6VV1fda70tu\nC5FSRsRJLsSb0I3kEK9KcKff1D5k3ZzKOYxBqSU5hixrKpVYqi/a94Lt49z/\nLITk\r\n=ijEf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICy/ZQVgUc6joET7Zxhq88fVmB+iYOdzRZPs1g4PEh7hAiBmfhiREornoUEphF+zU+NZFeB9ZdrFbZweNnX+/hFPmA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.05f3853e.0_1590082416668_0.7456437095910686"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.5fe61f4e.0":{"name":"@material/mwc-list","version":"0.16.0-canary.5fe61f4e.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.c67667e8e.0","@material/density":"=7.0.0-canary.c67667e8e.0","@material/feature-targeting":"=7.0.0-canary.c67667e8e.0","@material/list":"=7.0.0-canary.c67667e8e.0","@material/mwc-base":"0.16.0-canary.5fe61f4e.0","@material/mwc-checkbox":"0.16.0-canary.5fe61f4e.0","@material/mwc-radio":"0.16.0-canary.5fe61f4e.0","@material/mwc-ripple":"0.16.0-canary.5fe61f4e.0","@material/ripple":"=7.0.0-canary.c67667e8e.0","@material/rtl":"=7.0.0-canary.c67667e8e.0","@material/theme":"=7.0.0-canary.c67667e8e.0","@material/typography":"=7.0.0-canary.c67667e8e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"7b3ddcc96480928cfbc9538fcd5a840b5ba5205f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7b3ddcc96480928cfbc9538fcd5a840b5ba5205f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.5fe61f4e.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-vYcMAzxU86x2wlhlFAm7xrSM3GkcQef/91ZARQkJoVCwqdpcXQa9jdorRMcWgJ50qA2EOrt5AAOs1DmAOK1Ykw==","shasum":"4e92d499bc5f63f5c5bb537e2a3415edbba37e3c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.5fe61f4e.0.tgz","fileCount":80,"unpackedSize":919433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJexwnTCRA9TVsSAnZWagAAqjsP/12UM05xs6aF2KFfIgKk\npJD9mQroJqLxOlpENSJV81+0K4z/mXWyPNufpoJD0Oro7S1zmSnmP0m5UWPs\nQ5VKTw8lGmyKr7394FstMYFS9U+/VD/Jw0GAAKSWopWJOHWV0zJjaF57IX6T\nIrUCfkPOjMEfi3zHrD/pdB2MFO05XcjqGkx5toDYPxT7WHEUHMYOEiV8ubOG\nftL8G2pjlq7aukow3aC9d+tIuJR8gSJzz6VjxWKvAGq1xuc4lGzPu2xT7hz7\n0TvtXxMIgQffhJElj4lemPWgAcOijEExQkZyuQN0df3JKPuKJAU++368qiqT\ndLiNY6daXzXWrGHjND4tJm7ZdOHGNvVw9v1wlZ1fm9kAA9rlJx1bg69QZMkv\ncUjpRaXSXr3h4W5aZIdF1FZFmgxXDdhOZj8UYUlZXizyNlBLf9Kk2sA5zgeJ\nlezVuu1LRQeuvThD2Tk5UQRBxvolKlED8TFgkOldsmDEY4yXZc53f0NdyY0n\nc9mX+pH2mLU5Pih4lfkXd/CvArXAC9ynEXdrXVL/NHlGkdrt7JIjt2/H0bnw\nXloO1tQ7PY0tCmzRa8kn+Y82GmoNMmwHQVd2mq+Y8wvJZ56rbxJgBevndZET\nWFo3thlmGK+AvvR9TzujXI0MFuCNNDtVRsN/UDpGDJJOvVoaQRdehXFt6HpA\nmGxS\r\n=quS/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/2NfhbDeY/AaFRBFYtySwjUrB1S1nsRnIFpKRGrIrKQIgNH1llTesJbTQCueDmJQol/yjI0B8nleldedwFFQJ5JQ="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.5fe61f4e.0_1590102482918_0.2877366010971505"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.17d33745.0":{"name":"@material/mwc-list","version":"0.16.0-canary.17d33745.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.c113fc942.0","@material/density":"=7.0.0-canary.c113fc942.0","@material/feature-targeting":"=7.0.0-canary.c113fc942.0","@material/list":"=7.0.0-canary.c113fc942.0","@material/mwc-base":"0.16.0-canary.17d33745.0","@material/mwc-checkbox":"0.16.0-canary.17d33745.0","@material/mwc-radio":"0.16.0-canary.17d33745.0","@material/mwc-ripple":"0.16.0-canary.17d33745.0","@material/ripple":"=7.0.0-canary.c113fc942.0","@material/rtl":"=7.0.0-canary.c113fc942.0","@material/theme":"=7.0.0-canary.c113fc942.0","@material/typography":"=7.0.0-canary.c113fc942.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"b97ea4369af06c50f10fd7a5fedf708bbbc380cf","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b97ea4369af06c50f10fd7a5fedf708bbbc380cf/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.17d33745.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-y3lGVccyjPgV0qk3geRQQd0SaVGvoLVNJVji8DZVO8dKCvHj4hCy3tNlzkwUpgWuokkY7szSTCk9fZvfYnqyvQ==","shasum":"43e3633afaf25090213fab02c393facf22a21d38","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.17d33745.0.tgz","fileCount":80,"unpackedSize":919433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezUBUCRA9TVsSAnZWagAAR18QAI623MJospeF4Gm7ZJ4Y\nXU0flJLiCfEIJfdBZU4Pid3/T/uOHA5pHMqyrQfLPqC4iovzSiMzYyExvnxU\nHQydRh1yqt7St4Ql5PN7vzp8qwi4Urbwyix2FlONg28H8W02kw72KsZnX/9g\nvPXPOoBTe0wR53EEWjfw3Xf7yBEdpO9i3gXlNljdoHF3SYxFaKHq1df2i1Vx\nd/T1pXcIsU/D/SCqhI6vzf7Auixi+vVXe0ZTDwqqSybUEZwEXpBbt+RlJYVK\nddxjLrbBk0WQ4iKAlNwyaLEVXYsvxrnoUFLF+6NePzoTI4O+8t4NmUBtkje0\na/O7JyUTz3AcgjQq92+1G/RRIZfj9GYUjcADqa5YvLWG/z9p75EcSapyVQml\n0YJd4Yjytc9LL2CRR0Oei8ZeYcxuikq8HoSpjzkcGdHbGtloUUHedydTcxAa\nVtTevFFzMv0QZwVlzzHv7hOzvNgAVBX7kVX8njLxv3rmQrPlZ2dRuhQJ4EXA\ns70lPDIKCki8Za+vyIUSjrt4Q7DHCpYDvzC1fn4vT6dghVTE8ZnTokz8vk9p\nBt4ww+fBDwRebRX0sxO7EnmYib/KwmlSKtEnVYCGOuQp5LWWrZy8HgtdqoeE\niBOCQGNIhV3lXTUPo6o1YNV9eYCO1Bv5wBhc0agZCl6tH/tuGRsmTAQmEAhV\nlXRD\r\n=Z02N\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF0+3SNPA1djnEeW7+az+pFYOcxuwaAmXBA4bCQZ4H0UAiEAkp2STcck2L4fmminLeGdydZtBcvO0yc37w+5lzGZvZA="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.17d33745.0_1590509652014_0.1154588167521775"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.e8b52f5b.0":{"name":"@material/mwc-list","version":"0.16.0-canary.e8b52f5b.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.c113fc942.0","@material/density":"=7.0.0-canary.c113fc942.0","@material/feature-targeting":"=7.0.0-canary.c113fc942.0","@material/list":"=7.0.0-canary.c113fc942.0","@material/mwc-base":"0.16.0-canary.e8b52f5b.0","@material/mwc-checkbox":"0.16.0-canary.e8b52f5b.0","@material/mwc-radio":"0.16.0-canary.e8b52f5b.0","@material/mwc-ripple":"0.16.0-canary.e8b52f5b.0","@material/ripple":"=7.0.0-canary.c113fc942.0","@material/rtl":"=7.0.0-canary.c113fc942.0","@material/theme":"=7.0.0-canary.c113fc942.0","@material/typography":"=7.0.0-canary.c113fc942.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"2877bdfbc0560854bc1aab7aee7ca63f798613ed","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2877bdfbc0560854bc1aab7aee7ca63f798613ed/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.e8b52f5b.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-vX8+1T1A0bbUTxemUJSgBXMl+8IPC04vLafg9UHrGgwfVA84cA4EBCJp5MsLcXOZ6PajA2xXg4UzhQuWRvpXCQ==","shasum":"486e2c634d9090778f8557d4b48d8d0471807f90","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.e8b52f5b.0.tgz","fileCount":80,"unpackedSize":919433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezWNBCRA9TVsSAnZWagAAyR4P/iOhmNZq0taFYQGkMcS9\n7vYp5ZeLpk5+qhxALmakYgz3cACz8R579yRljUw55XaCdLG3KRrj1TUjmMeO\nk4H1rzHFaP9lsG46flOLqi6IqR4XkJ5F0u6AivHaGV1csbNCZUdIpdtMxrzH\ndgHFUf4JiLoXorMJklf3VL09bTymSjfB51D5vuI/5BZTl9fMHYHpgAhGfW6v\ncvilzWtoa61Vv9e05BHJDierjodxnYhwCaW9JEM+azfNqq8C5ppdkhW4dF83\nyYJiGxYTJ2r2QWlP91ZvjZEqy+7FXMtlvLDoWR1MGa9do1w+FAgeLqWUVWQx\nNEUyTuyL1Sj2rtHaG7D/Smr8W41xzjwtzmRqoibFxHlyiHhLNTm7rykoekxd\nLvz0urop2umDG6SIR0gMjC7/+YFM+rRFtePQaMydPN3hxZRU1hld/lsOxGs4\noqQZXgls3c5jJTUa7KtIDOrGL7c+35zKfhrTba2/2uTk3LYE3c/kaPBMBYay\nagjlZn3kicvVqd6HrSVXDgYR6rQh5vz7efdzqidxIDMUQz6gIc/HEDWeL00E\nrSFzCu2j1z0G1mbmAeUZeC70C87f60HK5ks7wceXAO+pKTvQomsmIpQPneOG\nc3ZYA8g+YjAdYPeqTXhw2ko8iU7wep1Uv7cMJzr72qcHWrTt6ZD57IcAYVt5\nneBI\r\n=j3L6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCBNtkgWVq/xB45cJPcanpLGrZEYWSUDrcuPhuTULQb1gIgBjMcXf7Gz+G93E/LdBM75SiHT6zKWyaYoOpydppdQfM="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.e8b52f5b.0_1590518592877_0.3492024192619876"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.09afa0a9.0":{"name":"@material/mwc-list","version":"0.16.0-canary.09afa0a9.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.01de07011.0","@material/density":"=7.0.0-canary.01de07011.0","@material/feature-targeting":"=7.0.0-canary.01de07011.0","@material/list":"=7.0.0-canary.01de07011.0","@material/mwc-base":"0.16.0-canary.09afa0a9.0","@material/mwc-checkbox":"0.16.0-canary.09afa0a9.0","@material/mwc-radio":"0.16.0-canary.09afa0a9.0","@material/mwc-ripple":"0.16.0-canary.09afa0a9.0","@material/ripple":"=7.0.0-canary.01de07011.0","@material/rtl":"=7.0.0-canary.01de07011.0","@material/theme":"=7.0.0-canary.01de07011.0","@material/typography":"=7.0.0-canary.01de07011.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"924f688ba033093a21706afcd1d5b3dea4527355","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/924f688ba033093a21706afcd1d5b3dea4527355/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.09afa0a9.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-HZPxs7vTVyARmcfRdgG8xY+ODkBBQi6JAzgR3shcimCI4omptfj7PP4OfLWgPxGWgElXsz0NWN6Xd4hwQ6gF1A==","shasum":"e50bbd21618d1dcaede08b8f3718d3898a0ea005","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.09afa0a9.0.tgz","fileCount":80,"unpackedSize":919433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezY29CRA9TVsSAnZWagAAJb4P/1bPPtEfavNCqBk0aBbr\n+LPPTjwmdbLGp60qC358fuBay8d4Ji/BnU4338S92JVmcayLdo3Oxty1nIt9\nNkGUu7VSRrWj3hm/NjLJH2h9R0lLyQWuGIGIpsvtindnmuYblMQNNTB7idco\nmThJ3sAg0MqQP30jDFOvD8OuPXHhD8w424Pxt3wCHxyu96EdpDJfzj/LcENG\nRW45Bm3o6JodJmzeRLukbjAUqJcgc/n5h2R/wxgQz3soLEKoHK/QjYDRCCNa\nz9VYlVDYSZlnxNK1mU/tkryJ6Q4oYFkmoonMZOFZA1E5OaGrqo+gzh9UBU3c\nLrFZYKrP1bB+wiAuknDA5zDDw47AF8TOOGvG6drWqiAE4JF1OD6Hsh6MODP3\nP0E0piALP7002crKmeScLF6ddGepA7EZzJA42c7kBSUhnOl3+nWgAC99Qb7Q\neGjjw6sF3cw0WmR6ytnNsoYGKVgSpRDY7QgaG9dmWBiskSjrHPEhArBuNQf1\nxwh8SQ4xCcdXJR4McM9Ru2m99AWG0+BAy3W1eVtyTt0Dc4a5g4nHVSjQt1Qz\nLPOZBWfTbYAeML47lD/jSB2e1s4LOoZTz+1smvbK7FYsz9/s5GOpBWqplW7b\niRd0h7Da8k2rlOetBUztf8hvDJJPqhFdSfJvkKXH7UCD8q/HgFdkpEgyuUVP\nAXlG\r\n=oSW8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHGNbHzEXi1jG01p6JkfpxOZ35Rc15DgsmQ1u7IWjohwIgcwtXE2bBAip9aJcHGnSVpBW/ko1stsaDh+diIXw7lDc="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.09afa0a9.0_1590529469485_0.02818075707300305"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.58bc9166.0":{"name":"@material/mwc-list","version":"0.16.0-canary.58bc9166.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.d91794c7e.0","@material/density":"=7.0.0-canary.d91794c7e.0","@material/feature-targeting":"=7.0.0-canary.d91794c7e.0","@material/list":"=7.0.0-canary.d91794c7e.0","@material/mwc-base":"0.16.0-canary.58bc9166.0","@material/mwc-checkbox":"0.16.0-canary.58bc9166.0","@material/mwc-radio":"0.16.0-canary.58bc9166.0","@material/mwc-ripple":"0.16.0-canary.58bc9166.0","@material/ripple":"=7.0.0-canary.d91794c7e.0","@material/rtl":"=7.0.0-canary.d91794c7e.0","@material/theme":"=7.0.0-canary.d91794c7e.0","@material/typography":"=7.0.0-canary.d91794c7e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"71845a1e43b7378230bcb8e8fec40f195da11c2c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/71845a1e43b7378230bcb8e8fec40f195da11c2c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.58bc9166.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-T7lPCaoUj9ZH0h9hyMwAa74OsJ5zbSMohgs7F+yIgCxOwayyY8fMvKPsUcxmV5Ez+u6hJd1+ctOY9nc+JVEZAA==","shasum":"111632d378e43094342de3e29b3c5808b5a8350e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.58bc9166.0.tgz","fileCount":80,"unpackedSize":919433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezbSxCRA9TVsSAnZWagAAcWQP/06kKPnB/IGh1L7mPbRF\nkrxHgJZmMLJtJbNMZ0hQDIMstFUUMYizlOp8UBtmVq9bVqxeJszHcpDws9vv\nLgLFP/Q0PRA94ZNEqiq5+p+gkH2nUe2G/ExjWe+3ItAX2UNYSz7qIK2/Ctc4\nWo0SzjcWgVbdUn6RZNwjPJTnULi648u+16aF7Gz58vrjFLkSDRe4q5TWAp3O\nUxc8OhBDl2KnCtfo1QcWmSWQqqG9ZPTFMsgAUYow63ZiAKUxro9S8nX0NQwY\nl/0mEfnBCqmqRz52sTl37HOwMW5K/U/v39fdL2QeUTtrpgkRlIpTE4gu/VlA\nMAVGdgFT1PuJ6FuKM2mfXYoJ2fE6gVhhKMg0MYYgFRLYSjozBJuusdRDG+kS\nRlrlqdIfWQxkbjCcPs5043vcrIPBC4DUwcU5nPIdAJPHFal8DDPh5Pw5o7qq\nszaJa8dlNM+pMQbvusCHYAmftmThhRP3drnJvogmUQmQCYHk5OkRrOkuvxoa\nFpXzTxiNzrzzmC23fX8AQLKGf4C94XJch2iCWce07aY8HFdelFZM5GGA/AKR\nqnzMazcER6z4eCkQoFocauoOY2Jeb9DTdHGe0BFPHJvxjmPnevhmFpJQ4eqR\nTbkknACPHvgZOaZN9rUNYjKYZ8cH3RqKzuVtEugLv2la4KD8Ud/KXWEnBACW\n7ynA\r\n=AMMj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2x1eSicJ/Ms+4ETASkzRF34EUKlEZ9BK0HTIv4PQM8QIhANWwDkIuDAiZujYg2oegYmG1Fpy/3JpGaYCPfl6MFa9R"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.58bc9166.0_1590539441167_0.7481820958137118"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.43bde144.0":{"name":"@material/mwc-list","version":"0.16.0-canary.43bde144.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.d91794c7e.0","@material/density":"=7.0.0-canary.d91794c7e.0","@material/feature-targeting":"=7.0.0-canary.d91794c7e.0","@material/list":"=7.0.0-canary.d91794c7e.0","@material/mwc-base":"0.16.0-canary.43bde144.0","@material/mwc-checkbox":"0.16.0-canary.43bde144.0","@material/mwc-radio":"0.16.0-canary.43bde144.0","@material/mwc-ripple":"0.16.0-canary.43bde144.0","@material/ripple":"=7.0.0-canary.d91794c7e.0","@material/rtl":"=7.0.0-canary.d91794c7e.0","@material/theme":"=7.0.0-canary.d91794c7e.0","@material/typography":"=7.0.0-canary.d91794c7e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"eb504ac1efc09a16041fabd1f3fbe62a49717c77","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/eb504ac1efc09a16041fabd1f3fbe62a49717c77/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.43bde144.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-TEgTG+ZKT7jMpGOB55II44bpDYv1QPawGs9ONW8sjgCPdfCoyslqd8zF7iistO36C8JKSWrlpx/Ds7d4ZTp+GA==","shasum":"0f7f05f738f9c89368eef5bedcb0d94f136a30ff","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.43bde144.0.tgz","fileCount":80,"unpackedSize":919433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezrGPCRA9TVsSAnZWagAA658P/1WYd1xotH/sGMaM1a4z\nLyPkRsv1TBn3YPMNs8yOJ7FceIGXYq1mhMpfKAjaS2NXK+ZV3gOh3ALIshv7\n/VqidCCArEkVcsYQZBa2MD96c7q0/Ul70yAeRP5/bnbl7nh1b7SO2Bi+g7RV\nRJv8IffqjnroYPDuzX/gMqpjeoJZ6MSEEhUbptjfNGwSHW5w2Vtj4gEo11CN\nEHwywMwB/WtIbNGwFl076ak0pzo1ZaBhB6KC6CJNuRA4qC/DhpnY2pddYmDJ\n3vxyPhXtPYy8KzbDjvd5tvvOv8LGpDjvQDbnV+uAOIN7WVU+Hqw5Xs1K4SmX\nnLpQY1yhAvkXGhi3eQgJ/1XF3K64Bd+49//JC2nXXsuqVa2TF5Jb3fGzi0XH\nv+wHjXzBeGf80xw0DH5kRk40av5V0tPWCXUfqzzVWdad7fGiQG9B5/5U7YT9\ngtwNq8z9By3emqQT/egQYzwQtdK18/Sa9CC0JT5TC/WyYujgw2g02IGcw2sA\nd918HJ6QW2nWChotyJXCw+vF4glndoETltZJfw3DB7CxS6nUGjGged1V/JP4\nPlADxqKq3LdQCxPoaDdmvDR3XV6uq8B6yWqz0Le5cR4yS+BbJIHuwCp9iZBP\nUZ2CfO1TCet9e+ef6dEM+sPlnWQKysjjLGpAZuPDTq33qU/qZVcUK4GP0XMp\nkpJo\r\n=2dmw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBGm++1WXBPhfrNzdN11BiJa+OQvKYEN4T0+EI9pz98nAiEAvSA/pICaE+t1nn/7pSFddln+ZHKxAkVMNAXvx3hep3Q="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.43bde144.0_1590604175080_0.39527599548878856"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.51067bbc.0":{"name":"@material/mwc-list","version":"0.16.0-canary.51067bbc.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.d91794c7e.0","@material/density":"=7.0.0-canary.d91794c7e.0","@material/feature-targeting":"=7.0.0-canary.d91794c7e.0","@material/list":"=7.0.0-canary.d91794c7e.0","@material/mwc-base":"0.16.0-canary.51067bbc.0","@material/mwc-checkbox":"0.16.0-canary.51067bbc.0","@material/mwc-radio":"0.16.0-canary.51067bbc.0","@material/mwc-ripple":"0.16.0-canary.51067bbc.0","@material/ripple":"=7.0.0-canary.d91794c7e.0","@material/rtl":"=7.0.0-canary.d91794c7e.0","@material/theme":"=7.0.0-canary.d91794c7e.0","@material/typography":"=7.0.0-canary.d91794c7e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"5dc99bc495fa061e0960f717c69cf33620115937","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5dc99bc495fa061e0960f717c69cf33620115937/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.51067bbc.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-sDQkkh/2NTNXxxyBTc7Dz2UUxYjGHZrGOMd6SfIUXUcA5O9bEHxKS7IuN2sK39HQfTcPXt8xgfBg5u80y7cbRA==","shasum":"2a4ea1b3cd9a5f7d9c3cb7eb053443f5e31696af","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.51067bbc.0.tgz","fileCount":80,"unpackedSize":919334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezseVCRA9TVsSAnZWagAAgdcQAJQsAzcuLstNqJqXw62f\nQslOHmi6nXOzwd6IjZui9XsKUSeiCPPuvXy7CoW6dQxyATVbmw4hKKk0Z+9j\n4jmAB/cfMOCNYtDE6nht3awzhgfx6i3YJDn6Xkw8iN7NvKFN/UhtTGYdzErZ\nyHUcoypzs18nc2i9eHroF36OrYNwAQSPFJxFogwYEExiZN6xL8W/7wyCr086\nVpxkc5o3trk5LiDHfQfsqLEG6gmG65CC1QjEzYU1W7y6DstPfvXhE5SOaqyu\nQ5o6QrYvZIqhOPPaI4oQ40fSwE3sTbB3NslmsWsSGifECF3kxkHoNlXOfM+m\nrAKLbm8Wsl27d6Ixd0yOMGA/FSlDC8rXD5zz6Ms0x0z23RFVG8cshm3re0w0\n2DSn5yQsO13Yrmm/oKB5vTIUP6XDlTv2VOoVX7BpP/FtKHN7jxkKCvZkGDtB\ng7yf0pTcg9wXmp2E/pHjWC3O0ieYt2/n/LSnXx8N1T92HIwRH7gBcMHv4csm\nKqN3jsQIaEvta1M+/AbQko+QBWtP2Dw3YBBMiwFojd6XliNmv7uHnKSsAGM3\nKzGLkPfZlWKoDoHzP9XSS9A8b8ydJdrdNsGGv+zlbEP6WfHuexIB4FZE7tpU\nSvGMCHW9TbpeD7N5OBfkc4BFeyvmTmlMuK2gVjR3GHqKV3f6rJAZpzspeHxY\nKjgt\r\n=TiLu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9nBlrh4vktg2TKL3xcvQ23Y1l7IJSzNz8Bs7z2/6J/AIgOTkd71ujGQnZntj1BUHZnrCYfVJLrmNzUC+ucTvvmEQ="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.51067bbc.0_1590609813012_0.4601175652835412"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.92751ffa.0":{"name":"@material/mwc-list","version":"0.16.0-canary.92751ffa.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.d91794c7e.0","@material/density":"=7.0.0-canary.d91794c7e.0","@material/feature-targeting":"=7.0.0-canary.d91794c7e.0","@material/list":"=7.0.0-canary.d91794c7e.0","@material/mwc-base":"0.16.0-canary.92751ffa.0","@material/mwc-checkbox":"0.16.0-canary.92751ffa.0","@material/mwc-radio":"0.16.0-canary.92751ffa.0","@material/mwc-ripple":"0.16.0-canary.92751ffa.0","@material/ripple":"=7.0.0-canary.d91794c7e.0","@material/rtl":"=7.0.0-canary.d91794c7e.0","@material/theme":"=7.0.0-canary.d91794c7e.0","@material/typography":"=7.0.0-canary.d91794c7e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"534233b7f60f5860c6a4bd35799b98a3c5d277b1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/534233b7f60f5860c6a4bd35799b98a3c5d277b1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.92751ffa.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-aRRRJPNuZwf+qpjnINtzvEtmjtWZv/FVJYqmc49k/nOMYd2BEvw4DslBg6VYJVKDZxbxeScFzkE4T4t6Gk2CGg==","shasum":"902c5af2be694c0c9a55f50a76f0d8a1b98c332d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.92751ffa.0.tgz","fileCount":80,"unpackedSize":919334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezt10CRA9TVsSAnZWagAA++0P/0NOvCkt7ZxMZjT6pOfO\nIeXTyFTz/Ud3PySW84gwDMWixQgXkFCP2YgfJGoYsq8jTR0UxDC95+B31cBM\nUs2Tg9EL8DjEGq0oLOzVL8t+VYi60GBjx9H2ry7fmTBcfOR2L0W9Y8yh1wyf\nA2Mzy0JVppjnlhRf1uGKOWSMBqdKR/pAyOjUmusWSOAqCymG+I+rRuGb+k4Y\n3GzU6aqEXEu4mmruh+lJmvuIyu0+5uySSXNad+PaOfu6wjL9LCMX2wCxybN9\nkLfPmR/6dUNdIA4bmO7IAauA0HX5A/vLz3QzmVEdw3H50kA2v5mVLHzEqlAy\nX1M3OI/o+K8zt5nUsFZFMoSlMGByYPoCiOA+Q0DigcJPcC6HRw1S0jOphbeP\nit3wgat6sQFeSIfyDhaisEXKe8i+A8qkfWcsUNZzdprSPWXvzC3Tod5qvfuc\nNgz/ZA4h114JSswIClYbotQC1AZ+SlvXUxUgZIfCmRat2pBtyY3vjGkTpGql\nDyh3r9dVBui8C8rtf5AbVKxvg04dLS5sTzR1eihqkZL5/wE3qbQL0EoIPsGY\nEU3VX4wNnIilqfJsUK1becTjanqfllVIae1SMJJ1Vkun+g5gBA7r6lHefyiS\nsUKbDLp5pFqPretPbACuR+klpB4gAJ0Y9eryailJidFw6HSfhlEhB3jd3XpY\na5wL\r\n=OnxF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG5gIlXP4R0pMwZ1o8xZtr0jKFLK3rCYVMtPHTI/P4foAiAIwtE3gEKkvHZmq/p3h+ItlnAPt7YqCxW/DoQw8jh/UA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.92751ffa.0_1590615412541_0.04729117601286825"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.aa2b40bb.0":{"name":"@material/mwc-list","version":"0.16.0-canary.aa2b40bb.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.d91794c7e.0","@material/density":"=7.0.0-canary.d91794c7e.0","@material/feature-targeting":"=7.0.0-canary.d91794c7e.0","@material/list":"=7.0.0-canary.d91794c7e.0","@material/mwc-base":"0.16.0-canary.aa2b40bb.0","@material/mwc-checkbox":"0.16.0-canary.aa2b40bb.0","@material/mwc-radio":"0.16.0-canary.aa2b40bb.0","@material/mwc-ripple":"0.16.0-canary.aa2b40bb.0","@material/ripple":"=7.0.0-canary.d91794c7e.0","@material/rtl":"=7.0.0-canary.d91794c7e.0","@material/theme":"=7.0.0-canary.d91794c7e.0","@material/typography":"=7.0.0-canary.d91794c7e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"2da9556d449ea1f3ddfce5e0978fba83f759a1e3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da9556d449ea1f3ddfce5e0978fba83f759a1e3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.aa2b40bb.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-BZzQDulfGJEC/1T2AYQtgDgzIIDk1KbQamZd02IYCcNWMYH9QBjKi9LlYlN3I0jPTR/AKfHdNIiyF2gX/Y6YmA==","shasum":"ca09a3fc4a7bee440b921c3c3f5526aa9172adc5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.aa2b40bb.0.tgz","fileCount":80,"unpackedSize":919349,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0A3LCRA9TVsSAnZWagAACGwP/Ai4Eno9vtG8RJzJw/TK\nXEQ+MQkXsVOR88ye2MRGOCjSWnfh3rn/dL+AQMWmg2FLkyVt5CDXqfTEFfhO\nOLqV427ifNHBlDhTFcrt/jcjRK+Fr+jWGv9fUvke+lD8f5JOLkzmHs6SdkzT\niC8GcS2CGGOGcdUT5UaSCKgTPT5cAkkmHAQEH/GXVazmhNNJvppLhwg+CV5X\nUdpAQD6qmQHOdiU08UJdB9KGKloXycP4I0of6tq3+/UWEGl8HEi0YqsOPwqK\n2JNOVuKwO/XfqrlAkTkqB92yfpyUdPVpDNkn7EVf06kABCYshTbfz/DcOJD3\niACogHyBwAFrtWX8a30R9/oukN+4tWMR6v4ofETWcRWKMNGPuhcG04Y4AuJZ\nHb+0lMW12ea00Xj09dqmKqyAEKFq/IM38s4NoeELgJ8MJEPPlBDQZnYbSHV9\nV2EgfQuL7SwtMxY4HGzokRRBE8NaZy3zpiR01NMcmoumFhbBDJVzbqcfzO9o\nq6lnxOF5F6pF1AQc4xMgg1X1YIjvUNdIInDwbGu07rIxaWUv/I8npgNI4GUo\n8vfCoK8QEm/1iPbtVX2f25OlJg2q9sk6QcaChipcZftDT4SYVF6ZobAouMnD\ns0JT8krv/bXcnuUmJeLob7/zBtxVwKQ7KrFoIZhtIr0G+slt5w2J3sViJRKP\nT+v6\r\n=lOTc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBjh4FcmNgxeu/N2ShbP7ZpwWyesrXOTtjOrG7M0lWP9AiB0xVJlLd1LnIG6FHSpq+g5qhvAh0LWPmeFzUxRJXq04Q=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.aa2b40bb.0_1590693322862_0.011255463817165579"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.1a870a01.0":{"name":"@material/mwc-list","version":"0.16.0-canary.1a870a01.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.d66d22bf9.0","@material/density":"=7.0.0-canary.d66d22bf9.0","@material/feature-targeting":"=7.0.0-canary.d66d22bf9.0","@material/list":"=7.0.0-canary.d66d22bf9.0","@material/mwc-base":"0.16.0-canary.1a870a01.0","@material/mwc-checkbox":"0.16.0-canary.1a870a01.0","@material/mwc-radio":"0.16.0-canary.1a870a01.0","@material/mwc-ripple":"0.16.0-canary.1a870a01.0","@material/ripple":"=7.0.0-canary.d66d22bf9.0","@material/rtl":"=7.0.0-canary.d66d22bf9.0","@material/theme":"=7.0.0-canary.d66d22bf9.0","@material/typography":"=7.0.0-canary.d66d22bf9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"f9a61196d2e2f42c5bfffe7dbe30411a16b908a1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f9a61196d2e2f42c5bfffe7dbe30411a16b908a1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.1a870a01.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-wlndEqtqVE2ylqxl2XdsLgwrSiPXnnxwdpTU0FOpGp0riit4pPEw0xpsHxpXO6QCwE0V3OwGpU28ydfsiCytmg==","shasum":"b1ec9dff81a9530a076d64a82fe2663c11b97980","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.1a870a01.0.tgz","fileCount":80,"unpackedSize":919349,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0CrCCRA9TVsSAnZWagAArogP/jc2kpSj5Vmr2J5wKP72\naupDl+HU+lIF6tclGZ8Hp09rBLAaGR/XvS230XQS8DU/wITNuqjsHQ7ty/aR\nOlyPrbvs7hb28HXjgsXlTWFlyjPqGzEi/Amv1geZc1SByMYw9S/PVQc4cr7R\nmYiBjaHcz7ioGLDor9dlGNtnvSGfqAkUBFjO4Z+FAVCyur2Ux2p0WNuEIGpl\ni7oT0D4CfqThDb28+WitwW7dB8yQKR9xtl6FNZbR9mTTDIYQlmNRiFuTEqUV\nrjwAxlLJ60rUe+wX+JoY5eCgMPYs8wcrVS/Ty41U0DvpmGCF6ATiGBwd8n9s\nBYn1cwbrWI7I00oChBHDe7jFTz2Fwb4PUVkvzOMBb4Vqm/8FLLG6xQLIWOBC\nxKgEpaGcLZyIr8doJuB5iq149qZ6P5kA3zjio+Yi2gilUyhKcMmz2L52dgP6\nCcMhfVjjbmZFi9a65bJl7FvzpKvcXNJcubeU81Sl821u51tNeNGvZb5JfBWc\nI71u6lFukYTeGRsD3Sj9qI46cX04lIR7XcXlAGx4Ro0DQEPy0iStsp3d+y+H\nAtUFfIfsxKBWEzvqFaTJPfvChokca6YoIblIb+L8O+g+UnbQc2Xq8skrTOCU\nzAtTiZwtYboTYTUSiRqALlFL1HQkcFrVHLv8esb1mE+AVzIvdcQzXu9bnuBJ\nQMQ5\r\n=LNgz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHhex+Y9xeNrA+uoYyS3pOIYbL1/u7qyHpBtG0ilCVivAiAssqs5rNOyQnzdyCNaQ+0aD7UbhogPizNkyq32eBJBnQ=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.1a870a01.0_1590700737584_0.9834586525708868"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.ad57d086.0":{"name":"@material/mwc-list","version":"0.16.0-canary.ad57d086.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.d66d22bf9.0","@material/density":"=7.0.0-canary.d66d22bf9.0","@material/feature-targeting":"=7.0.0-canary.d66d22bf9.0","@material/list":"=7.0.0-canary.d66d22bf9.0","@material/mwc-base":"0.16.0-canary.ad57d086.0","@material/mwc-checkbox":"0.16.0-canary.ad57d086.0","@material/mwc-radio":"0.16.0-canary.ad57d086.0","@material/mwc-ripple":"0.16.0-canary.ad57d086.0","@material/ripple":"=7.0.0-canary.d66d22bf9.0","@material/rtl":"=7.0.0-canary.d66d22bf9.0","@material/theme":"=7.0.0-canary.d66d22bf9.0","@material/typography":"=7.0.0-canary.d66d22bf9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"718a29a398b0baad30119bd852a5e1bf4d8e8e3c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/718a29a398b0baad30119bd852a5e1bf4d8e8e3c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.ad57d086.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-vtIio1aGn6oihNSvsW/FOPZjNLZF6UDxAxCYg05y6qZn/yIlEcDnvA3gnw/QwhteaQhCaBwBuBl4rWUGkLt9PA==","shasum":"0206e58e6c7581e5d5c4d6607545a7d6cffd5d6d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.ad57d086.0.tgz","fileCount":80,"unpackedSize":919334,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0Z+LCRA9TVsSAnZWagAAQMwP/2aDv6F/dPzvJdiJtte3\ndTUT4c78IIIn6us4+CvAtzNczATdK0Q42NHigcTJtbfXV3Cci9L+2hrIu7zG\nmLMlzIx9X8FIXOi30EKuHaPCWPW7quiNM0rltE0iqjMcqQzMIoABj7t0sC/1\ntRaNMYVpWVWPh2VfKOFoLsNA5xUaXReIvT+bVvSi/UTvVyZ/MlplD4IN4iVY\nd0aG/0vZeR0Kf8gXNb7VaFjO7g84EKX6ODPBEbKLFlt790YgmmECSJbs/pwf\nag0wtgX/Bw79TWP6QjNdHmS+D+6d9yWDz3iJTMi1rEtVLaIUtycdsQHI5ZdK\nbMllcKmCCwpGfLG5L04HM1PNaaA7JyBHNpRR/OFRp1nr3z8IqK2KQCZHnkpJ\nMPAlMsJ1X2dRmBGgeirDwsO1dfny7soKbP8hsRfNuZAPdtx+DEjm3aYhZOf5\n/KkN7/rPBQg++FKk59Isq9F4A4G1aND163mYbdfwzYFozLM3iohvFWyfU5xU\ngChd1BGqx6WnEM4eOoj2mYdGCnIUjhyjvVUT/mhOX4O2w9+/muH607KQlNpp\nwHnm7+K1xcHBmN5rbA/oaa2UrbjwGFdCv3avU4EBLYXvYDkwHhE6MTidG6Fn\nZUzRyTzeCr8rzHeZeZKPDfQlJxGQyJZe6Zm7fUsmLQxfN/VGYda+C5O2q14h\npvg1\r\n=2sfH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmAaa1nwiAC/E7Gq8B1ms/P28bZ1O/oiaUxBaUhyfIzgIhAPoMPBZA6AAzQLylIckz+2gYfSetqUrZEMSqQ2uTXpqO"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.ad57d086.0_1590796171260_0.5166402648329451"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.3bf2b4d5.0":{"name":"@material/mwc-list","version":"0.16.0-canary.3bf2b4d5.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8073a20a9.0","@material/density":"=7.0.0-canary.8073a20a9.0","@material/feature-targeting":"=7.0.0-canary.8073a20a9.0","@material/list":"=7.0.0-canary.8073a20a9.0","@material/mwc-base":"0.16.0-canary.3bf2b4d5.0","@material/mwc-checkbox":"0.16.0-canary.3bf2b4d5.0","@material/mwc-radio":"0.16.0-canary.3bf2b4d5.0","@material/mwc-ripple":"0.16.0-canary.3bf2b4d5.0","@material/ripple":"=7.0.0-canary.8073a20a9.0","@material/rtl":"=7.0.0-canary.8073a20a9.0","@material/theme":"=7.0.0-canary.8073a20a9.0","@material/typography":"=7.0.0-canary.8073a20a9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"796a0757a7808c623433691d3c52ef63cda47751","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/796a0757a7808c623433691d3c52ef63cda47751/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.3bf2b4d5.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-VYHeguSibeQua6rdd7Cc6TIqy+dLCKwGwhJLUt3xopl4WiqvAeR4kXwTwhT2FJrd9GNclkXLjQeqzLrEzjDYMw==","shasum":"9c982750f037f729ac14702ca3fa70a57e201077","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.3bf2b4d5.0.tgz","fileCount":80,"unpackedSize":919367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0aqxCRA9TVsSAnZWagAAIyEQAJfiBNRxgbeY2CD/tv/T\nN/nXdloBgErFtY6uQc+Xz2cN7w/axXUvgcga/Fpn+LECdxO0T8GMlwIgjx96\nwItsT21dp+Oj3tdAZql9r1I0/UT/PQW5Ih30qa3X5aOUkln0TUtAwTZkF7mB\nCf1vabzlmV7PfuNXpXMrxQ2GhqFgOxd53bV8Hrye3YW9DXu9n0O1G10tZJlY\nxIWIg/FQhmv4RmOqc23hzq7m8xO1/A5d7QeYUAVwdWtFuikzdT6Yff/qqN1I\nmgDOrICuCLHorRmoa5iNOrT3kjiXdQdDXg9YfubHc0UXGOHHmzllNrG3iamU\nwkbLiF5OaVwq/Hb8Qova9F/35dz9+s2l3w+dWLSlfag6JOEVwPKo3xzKHRKA\nrCCDgf+rXpyvM4QNWGCTeCpbXmfHF4xJzWihSU0hI2NTc/6dim4HVbOoAAz0\nUGr5KCNVKXv5w2oiy6Yd5PilV6u7BBsSFVTc4QZ7AUTLYVGZ5EGj0L4KLnjn\n0PzhAPzE2/u9JZWFxyJpP8g+Om2z8eP8NKMWu1J/R6kDPB4JJjmXc6jEJ98u\n8GdQ2e6q3JfH+HyHdCFJwY+KGa0wqJ70wP0Ob/6E/qPYe011T+AtQWhRYCJ4\nuvUsj09CLSALiAG+LlGpy7FQvuKRUlhVK571dtd9+Kp8roxa8+A2+zt+XLpx\nMan/\r\n=i0SM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBiiLsWDCR0+R6ck4CxMpcl0rRjB8UwBGUJ+ZdiCe5Q6AiEA9rVvQg4i2qW7582nkJi21xFdsqWBBu9muDMWtcu5K4M="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.3bf2b4d5.0_1590799024416_0.5733585536791073"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.ac05f090.0":{"name":"@material/mwc-list","version":"0.16.0-canary.ac05f090.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8073a20a9.0","@material/density":"=7.0.0-canary.8073a20a9.0","@material/feature-targeting":"=7.0.0-canary.8073a20a9.0","@material/list":"=7.0.0-canary.8073a20a9.0","@material/mwc-base":"0.16.0-canary.ac05f090.0","@material/mwc-checkbox":"0.16.0-canary.ac05f090.0","@material/mwc-radio":"0.16.0-canary.ac05f090.0","@material/mwc-ripple":"0.16.0-canary.ac05f090.0","@material/ripple":"=7.0.0-canary.8073a20a9.0","@material/rtl":"=7.0.0-canary.8073a20a9.0","@material/theme":"=7.0.0-canary.8073a20a9.0","@material/typography":"=7.0.0-canary.8073a20a9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"dcf12105ac71a486ee350d7b7fafeee2e7fbba2a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dcf12105ac71a486ee350d7b7fafeee2e7fbba2a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.ac05f090.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-dLUq1v0btR4r7DJHd/72JMHZSclAKlo55NRWuTwnCdb6hgAdvnBO7cYygglXoG1xQdXAsplB+bKZ+uQa3CZb2Q==","shasum":"8f7bd1457c34806f099114fa0fa7f073ca312a4f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.ac05f090.0.tgz","fileCount":80,"unpackedSize":919367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0cniCRA9TVsSAnZWagAAPM4P/RNc1F99o8BYJT2/1e6a\n/V83fcZCxSNb5stRIWJYaKRJD8GfpjprLF98j8gZusmV6vj1nxmqmFUv54Ob\nUDMjIDAXQbTDXQrtIQIf74MoDrBgiqUlyAZ0QVNHpnGmVx+SaPA9eGYxLlib\nYDUZnT1ws9Jf1RKaoE9a6P9mcV1GV7cuxcYx9n2jVTtRbJF3zc8PWksxXArs\njdF0hpfteLV+sH7TRAnzsQV1819KViCDnml6d+wyCwWmKYdxwPYTpIWkroxl\nFsVkURaa4mt76ujbXDoNZUvtNOw5SGoyebM0q3izBtUmN/JEhnzmiLkPYGjf\n/JjknrihyDanCsnZE01jA7nEny2RSosB72jVPCdXnTqUA1Fj78kWFEYoQzNu\nDLuA4NYCeE8mDst4e3lH+51SRiGAQtZberdu3eFUKll0jbqKPRkdTNhdSBW5\nzbYOeJXu7wRuFYRvxc5Uc+dE0ovA13AeJBsXzZ7ZaQXpV2Apvm5ktywB1hjE\naNNjcO999+Qn37WT1KoKvDhbOIvuRGGCPfXLwJS15WByZSa6OFlLrQobwdl3\noQgbmjS6JzkdFRTtlBsf4uttGwAcMySV+bXvJzkVRjUk6NodZzUz3Yd9dSuh\nBgxzhZpg2EvLT7a/NbQAUymPizFbQt6s7vtk0xaLHX3OG0Horipf5TtHnkwn\nmZgm\r\n=IOK6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID2NhCCId6KRfl4PCTmxLcoBXW24cwZ51FInW2K2GMLNAiBJumdu8XhrRTLjcJbfO75LHxyVDo22uELt0rfDuLNQGA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.ac05f090.0_1590807009565_0.975103945158827"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.0ba7b095.0":{"name":"@material/mwc-list","version":"0.16.0-canary.0ba7b095.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.8073a20a9.0","@material/density":"=7.0.0-canary.8073a20a9.0","@material/feature-targeting":"=7.0.0-canary.8073a20a9.0","@material/list":"=7.0.0-canary.8073a20a9.0","@material/mwc-base":"0.16.0-canary.0ba7b095.0","@material/mwc-checkbox":"0.16.0-canary.0ba7b095.0","@material/mwc-radio":"0.16.0-canary.0ba7b095.0","@material/mwc-ripple":"0.16.0-canary.0ba7b095.0","@material/ripple":"=7.0.0-canary.8073a20a9.0","@material/rtl":"=7.0.0-canary.8073a20a9.0","@material/theme":"=7.0.0-canary.8073a20a9.0","@material/typography":"=7.0.0-canary.8073a20a9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"ea87617c8c9beaed33b593554f344296ff2b1702","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ea87617c8c9beaed33b593554f344296ff2b1702/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.0ba7b095.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-2DVt4/+Q+wsrRrURyU1FUhF4njrdN8AMqPqgquZ0ANzMxhOkKnXs2plZoruMe8+nhF+rul3BQxRwT99A3gSSjg==","shasum":"f280c8acd7012dd03433dd15db9b68d0c5b26d64","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.0ba7b095.0.tgz","fileCount":80,"unpackedSize":919367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0ctyCRA9TVsSAnZWagAAbUAQAJgQuJb/rxtcYFtHEj8o\nVq4F2HCg5cKOAAWfL6m7sYuY0qW7sZIrWNHGDMOjiJ+PF/p2YYMgIok2z8nj\n2j98fDeHKWP4wuaeDxCQip9y8/t2gh70iCDIK5vNtNeXEE28TF1Dtm+E294o\ngb2kS0olAxpytqxDvx5seader6mojgHMkoXL3F4sK0sHD35pFYbSjJ2WhpJf\nuhAdlmGBhRdblDn+ETSznM/BiRBhoZry/+mEiHca1wVAeo6wAs4GiXGYcxTz\n01d64rKG02nVKf6U4xD5yYJLFNJ1w9lwF8IXBNdTzpHVufV99J3QkyMJqxe9\nOETe0O1XcaYAYnGvKEcfXUxWsNMJ0ICgRsGAKd2NH90wYVPLk/KYelqmZRX2\nd/TX5EnzVn5333SWB6E2TadX7SncP6hHCJeAq7G3qjboYEfjZFD9ueIMsgOG\ntT4TbQD05PSjyxAcXryL0/zlghUP9nT78bRTxERm4UBpybgP8+A9192gW7Bz\nmi1+CzomfdmvcE8zfUsrWmqWZQ2aJ5OvWdukLsRM6CJMVA7k2aw99naSmIK8\nOjnrFk81RU7KoBcKE/KDvbwKHgmOZTyMFPvDCzqxV3wb5godd3HHnmPzxKsX\n8cYrN9ocwvgZy8vDDKxDsu2xlij474+pqyUGbWFBCV+f3K+A2g0SH2svl4be\nxfw+\r\n=qq5w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB1YHkKUu2fW5GS47WJlDl118h9eR3LcPB5w/htiKOL0AiEA/qonXRSuwtfXfTi7odXgCT7zP9I5BDLzg5Pn3GALqWw="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.0ba7b095.0_1590807410002_0.20447770507461227"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.5eaa9bac.0":{"name":"@material/mwc-list","version":"0.16.0-canary.5eaa9bac.0","description":"> IMPORTANT: The Material Web Components are a work in progress and subject to > major changes until 1.0 release.","main":"mwc-list.js","module":"mwc-list.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"author":"","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.b9776b1d0.0","@material/density":"=7.0.0-canary.b9776b1d0.0","@material/feature-targeting":"=7.0.0-canary.b9776b1d0.0","@material/list":"=7.0.0-canary.b9776b1d0.0","@material/mwc-base":"0.16.0-canary.5eaa9bac.0","@material/mwc-checkbox":"0.16.0-canary.5eaa9bac.0","@material/mwc-radio":"0.16.0-canary.5eaa9bac.0","@material/mwc-ripple":"0.16.0-canary.5eaa9bac.0","@material/ripple":"=7.0.0-canary.b9776b1d0.0","@material/rtl":"=7.0.0-canary.b9776b1d0.0","@material/theme":"=7.0.0-canary.b9776b1d0.0","@material/typography":"=7.0.0-canary.b9776b1d0.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"publishConfig":{"access":"public"},"gitHead":"971c5d20ea684615fa18f3c991d77704a2435384","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/971c5d20ea684615fa18f3c991d77704a2435384/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.5eaa9bac.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-6s8XBKP2lCpdC3MYpGj4Nawtds9iXmHVQfT1sCaM8OfAazGYvk5ookPghLX7OuGo9KiEB+Y34BiEjv1urDs4Nw==","shasum":"db936f274e6fb48404d2f72084b12b8ec2cb2593","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.5eaa9bac.0.tgz","fileCount":80,"unpackedSize":919367,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1Y9MCRA9TVsSAnZWagAA20gQAIySZA99qhBRb8/JVaAX\nePeXOH6bEuDi6GRpdmzZyHMijZ9eYCIqoTzW0RNs/hMEOmHJ+uKz5WVCifXz\n7qA1FENpY3UEKs2BvTGVGGw4xyOVzCnQRx4wEjZJxKcRHN7wy8at3bDGJ5H7\nOfjimJKDSQjsrsK5mC7M6a5lQxVzuzFgQg+jpO/tJzjuLuA6BpuD+NsDQtRx\nklq9LD/F0FP8Mlx8hj6uzziOJ/W+IttlEZUpapKS79JhsSrh9+SdHwANXmwG\nPSCRoN/AdtBgXN6L8D4qU2YFm3Eov+5Aa8BwMZcAJPTw+7ZS6pZelt9MGW2x\n7MTl9ZKVbG+FOUmSbDPfJV3Azm8TMUPyfkUeQ3z+6Z4dKtYe12uRHiyZRhHH\nUucKGMVz55yhnXycTwLUye/JIRCY6+uagYSzyvL5vzjlek272rbTIEXCP+R2\nlru7uozBqBInd7roBZDwaqx5n/lEbeUQKfr+q5rdrl6/vUK1Lkm6laCTxTaw\nfOM5QkTxN4hrbRnRr77ZiNvB/5oooVDBFy8chnT8puSqid7Lzm3r22QpYcj7\nJ5vLvls6Q9yYYIWFkJwDKF35/Zjz5F6Lh83gOOFLG/CwTYhDYf11+MuK9Uxs\ncGgy4TKOjpcv3Fn1LJpSwi/gSR0tqrABXRIcPz0YMEQHlBDlJjomRaPoXTnT\ngBiQ\r\n=VIX3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDlUxzAdi4WLQq/RwfqQxr2MPCufHACcBAzGZsQ5EI/kAiEAz29SVE/bkMuNC5xiWtZSlcpG+psLHDW9iviQ180uRJU="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.5eaa9bac.0_1591054156210_0.2627623197801616"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.5677ac20.0":{"name":"@material/mwc-list","version":"0.16.0-canary.5677ac20.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.b9776b1d0.0","@material/list":"=7.0.0-canary.b9776b1d0.0","@material/mwc-base":"0.16.0-canary.5677ac20.0","@material/mwc-checkbox":"0.16.0-canary.5677ac20.0","@material/mwc-radio":"0.16.0-canary.5677ac20.0","@material/mwc-ripple":"0.16.0-canary.5677ac20.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.b9776b1d0.0","@material/feature-targeting":"=7.0.0-canary.b9776b1d0.0","@material/ripple":"=7.0.0-canary.b9776b1d0.0","@material/rtl":"=7.0.0-canary.b9776b1d0.0","@material/theme":"=7.0.0-canary.b9776b1d0.0","@material/typography":"=7.0.0-canary.b9776b1d0.0"},"publishConfig":{"access":"public"},"gitHead":"371e5022a95234955de71585477022efd63b4645","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/371e5022a95234955de71585477022efd63b4645/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.5677ac20.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-lcEbvmyYjpla4aih6gY6hQoEYwaAzwJNmn7cltKeAmF8gJ8Lk+X1pffiYUnzsCkFK7hT51hXwHpr1TH8pohqzQ==","shasum":"f16d8167107b0659c9e3c8f64f260156c78d55ef","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.5677ac20.0.tgz","fileCount":80,"unpackedSize":919411,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1ZXyCRA9TVsSAnZWagAAElsP/jv0vdg2dS0EOw+b8Ikb\njTZ+VpuIR7f3wNSaz92palBOxXrgQ1MGd0am4VGXndiJ7Re1RBb3nAzLHIcx\nKF5JMgBilif0DuUwlHsFytL2ZQeiKa/XBwep0z1jzJbuF4NIYtsba670XGU6\nJAGvVpsrsabr/7jRtLo3xMPyvLAlsv2+a3JdW+jzmbOh4kknAnmvpp5Kfq4x\ndS1DGR+dKryibJNN6HjSWPxKM2RYjusxlDzVj5B+0S33zGDo2GfzhazOAPJw\nE0Sc2n+tg4JqApx8ePH6WLZLUj1dt7vR54xRIF6E/wDcDJTMRWqRuoOrkkAU\nN0wE1Q0xYq48AibtaB+3ntOcOIC6kzyVDgDhbbyBdnwpEdCr5XsCsXEFAv8b\nQzYrAaEfqm8N8VR4EQsby/PGAo5kqvU4fy0SYQfZn9IqSu7oGQSlDE1SAOl9\nU7B7wFoVvyPTIgNLftR6uimQK+MUu4v82Myg1vbYJwa7P9m1zNDFfJ1wAr0A\nohoBPNq25T77yMGwh2+Fj9SWNFKuNKNSu/4Pshr2wT0PDpi5xb4UD7pHB7Ig\n5x97gOrdzR8Ewl+20KavPMiqgMNK0us3HUeZ85UYbbWjc55YWGYSzgLRzbvj\n/PrgIc+VjhER4WgrO9bIs2Hrvc6f6NOCysYql0HYkbcLzT2rs3Yk+/MIisW4\nOnq7\r\n=blVC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEI3oLeZ9dMLuJQ/Qcia1eXTr5J94lekf4MO/fr7hPhnAiB2NUYW6P/b25c2Chh4/nu4Z48poYau5A1wbWWLqjcUwA=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.5677ac20.0_1591055858140_0.05493798496652569"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.7ac6bff4.0":{"name":"@material/mwc-list","version":"0.16.0-canary.7ac6bff4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.b9776b1d0.0","@material/list":"=7.0.0-canary.b9776b1d0.0","@material/mwc-base":"0.16.0-canary.7ac6bff4.0","@material/mwc-checkbox":"0.16.0-canary.7ac6bff4.0","@material/mwc-radio":"0.16.0-canary.7ac6bff4.0","@material/mwc-ripple":"0.16.0-canary.7ac6bff4.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.b9776b1d0.0","@material/feature-targeting":"=7.0.0-canary.b9776b1d0.0","@material/ripple":"=7.0.0-canary.b9776b1d0.0","@material/rtl":"=7.0.0-canary.b9776b1d0.0","@material/theme":"=7.0.0-canary.b9776b1d0.0","@material/typography":"=7.0.0-canary.b9776b1d0.0"},"publishConfig":{"access":"public"},"gitHead":"393ff5005fafa04ca276d60639975d8bbe851f70","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/393ff5005fafa04ca276d60639975d8bbe851f70/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.7ac6bff4.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-99VtGvNQduEJNFI8EmnsEmB4l60A9p5MFzf2ztkZzHWJwtyWToggepYbhp4zlD1Iat3tqIlWGtOZ+eTWtzFKuw==","shasum":"36efcee1163a96b5469cdf6ba194bfeac383b613","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.7ac6bff4.0.tgz","fileCount":80,"unpackedSize":919411,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1Zo/CRA9TVsSAnZWagAAMMwQAJaZ9QXzPGu84l6cESSU\nodd8wk8B5cjGRcyC3nvmdXmdvuykfJcxRWeOhVt0r7dJHF3OMxAoyM/uM1SG\nYxdZ16x2I5FqOFHKhrZxRIVXaap9k5pu1QNNLGYUtzAauBsXB5cUJhHjyd8b\n8nSeYlmLndMxXlJ31tcqIytCZGiy4Uma/VbuVkZ5DdpskgT7DSGtcWZn8EJH\n12+IexLJ5pOzp+65sTGwP6Z1Kbo3v7my6eADcxVxhy8Ck2BY5y79sJRrhzgS\nEeOJ7thAmnOO9VeuLtMmwqyD10/DkKUPUsIBFMK7W3acBmUVx9bj4GKS5FVN\n4zwCow1vOnG8RDInLV29bRouy2UJNyPbL8DCA4HawJR6BaCYmv6qxF2b87J+\nku2R5FwOu+Q+YgAiJTEoqZ9v7UPRWRWpchNpqirMtKE42RtJjRFEcEhu94Qx\n8g0mwN7+4C4qT3iOScHJV14OSF33VMZGMqrXq6yeXfEZQdu1Mf0qWkXYiB8M\nxSJmkou2n1fOuJgYy8kDB/xTxVKIydGFXrJno9CQouioHQuBiLZd6scuMwfC\nahBhzMJMxmco+RcBrRaLlumfKzRJNnVb4JvCgZ1vCIycudRxGopLDhOuYLEf\n5sZpL8uv/p9u7rgSV9EmDXIZXrjIQiq6v0bpUT8wv/k4pVe9elYKrO5J/W7R\nKuiG\r\n=Wl2I\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCYEbVPlMmJr0TXqdMsxYbHY2uOyEn6qLyYGXvFam9xWQIgHtFatrMQHtYjypNiq8BoLzcZs7uXhZOhDnKzfseIhOI="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.7ac6bff4.0_1591056958989_0.1640452572516291"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.d45622aa.0":{"name":"@material/mwc-list","version":"0.16.0-canary.d45622aa.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.b9776b1d0.0","@material/list":"=7.0.0-canary.b9776b1d0.0","@material/mwc-base":"0.16.0-canary.d45622aa.0","@material/mwc-checkbox":"0.16.0-canary.d45622aa.0","@material/mwc-radio":"0.16.0-canary.d45622aa.0","@material/mwc-ripple":"0.16.0-canary.d45622aa.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.b9776b1d0.0","@material/feature-targeting":"=7.0.0-canary.b9776b1d0.0","@material/ripple":"=7.0.0-canary.b9776b1d0.0","@material/rtl":"=7.0.0-canary.b9776b1d0.0","@material/theme":"=7.0.0-canary.b9776b1d0.0","@material/typography":"=7.0.0-canary.b9776b1d0.0"},"publishConfig":{"access":"public"},"gitHead":"ec53ab9a7c87df6783ef1e555aba6d7de86c46eb","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ec53ab9a7c87df6783ef1e555aba6d7de86c46eb/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.d45622aa.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-l3lnVhjnlal+lSd0YfS8/3XpjPrlO+9mXZzjMTI69sJjsQ2Oqce58g/CiMJ3n5pu1bkWgFWzjPn1lXbCze2QmA==","shasum":"a2c149f02e4467e8143222e96ecedf60362a771f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.d45622aa.0.tgz","fileCount":80,"unpackedSize":922049,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe1uTICRA9TVsSAnZWagAA6wMP/1QOKlzj0i5S5UqQpbGU\nsruBUY1rEW+UYzbGqzZVvek6dvVW/fvDQJdjVVMpcmuzxciw0SSeljqyCW9k\nHrEVlgpX1K4WuweStkOWP948AC0bMIz5usY3zYnAJerunk7kmnHq11mlh+Zd\nlvo5jKguZPVQVQQJ8jk4vd2mR7SDVtC38e8fVQIYV8hYcffePmaRz6+kbotu\n5sSXNDohjkd1Ku4MXYEYa1ULrzw7GMxL2HWk291F0Pw1VLgBk28Znrnhj+Oj\nGWiH8VGVW/SEGAI+1CBWhWgG5i05jbcnjKzRnIQeKGVgXpTyXXdj1s/P0tcH\n1OovwckzsS+By5LKmHNfHw8m+TIhZ/mhI2+ENN9mCTnrXGlRvv7BAfI60ONl\n/7QwT6x408OTbsNGU5Eni6Zgqh4aKPY/FEC3yhYhgcGijjJVV1ftVf404idZ\n1QlqDHtQxoX3q6Tk/iNd4qquWFtxVJ8DG2cBfMspYbiRDF3CAFomCpUjA/cI\n6EzgIIIsk6ZZQ8kon5WNySIApZOnuLe2Nr8zwCIpE5cM6zJYTYgtRBYORYlq\n9/F1S07gZRVRhaXLLlQGD8xKcYRAvOmhr9j8Xa6HHAUJs3NLJd7emWyiYZQf\nfDsac7o5C0jA5iMQ9s7oRiLUbgRlTlWPhRLIzbaSjYRg6mnqAtb1k7PbeXVl\nAW/1\r\n=YnE9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFhsPRkP3s+whPxnq9ru7bBjh91s7OEc+6sq83xm85sfAiEAvDQEzqP3g+lA7xNLJXqphA8PeNnQ6UUME64XJmIkxME="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.d45622aa.0_1591141576080_0.1788161450897161"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.dc26c709.0":{"name":"@material/mwc-list","version":"0.16.0-canary.dc26c709.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.a0dc2b5c4.0","@material/list":"=7.0.0-canary.a0dc2b5c4.0","@material/mwc-base":"0.16.0-canary.dc26c709.0","@material/mwc-checkbox":"0.16.0-canary.dc26c709.0","@material/mwc-radio":"0.16.0-canary.dc26c709.0","@material/mwc-ripple":"0.16.0-canary.dc26c709.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.a0dc2b5c4.0","@material/feature-targeting":"=7.0.0-canary.a0dc2b5c4.0","@material/ripple":"=7.0.0-canary.a0dc2b5c4.0","@material/rtl":"=7.0.0-canary.a0dc2b5c4.0","@material/theme":"=7.0.0-canary.a0dc2b5c4.0","@material/typography":"=7.0.0-canary.a0dc2b5c4.0"},"publishConfig":{"access":"public"},"gitHead":"58a25b562ae31e6c32c67599f842dc6bd1f86398","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/58a25b562ae31e6c32c67599f842dc6bd1f86398/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.dc26c709.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-CVRUqmAd0pqxBqWlbYG2GB8hSXiwt3D1Gm/z3xXX9jmZ9IYptrYL0gZN0NBva9BcFCQAFRiM72ZPETwaaMomiw==","shasum":"7ec1b6352926e9dbf4c2fbb40796a60048f340c3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.dc26c709.0.tgz","fileCount":80,"unpackedSize":922034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2qlBCRA9TVsSAnZWagAASX0P/1Djheo8twIeUAnoMDlm\nfOIap4UrNUkIRFshAwL1sYZO6OuXDlWasZbs6+8UKjYqPja+fas39MFR8UG1\nIzn7em4IrpKH0iibp/heAi6xzPkD2evomOEu5DGyLK9kRTTiYBpV38RlTJF8\nFWi5XoUuAJfvmfiN0wTmQLwThr7omYq/iOMrbYwYtU5k6hiw1uA2s7hChjyz\nMXbXuCaEIZ65RZ6mondDrzBvPOvjr/Mh0MwdUGSZiakBIuuqtJUAOVmTvUab\nx7308dhHorKC2GUa/6NvRdBxeEtk3W62QD5pq0yqUH1tTP3USSbV20QkgYUz\nt6aOHUsRlOW1Fnye2jvSkI02imuHBew0L8XmXUyXcxn1g1Eqp4nnEfDZ+ipJ\nXHqSZ5wUlbhdkfm7MaJaRZoTMOouOi5OQQPgRkaJs2/ytU2n6ztQ8uXUvvru\n07pCbXUL1Lhyb3TxnahHngqVXjXZlq/T4+8NReWji8gmks4AYNFojCONYO9R\n9P3WaHnhSKk6TMXaHh4C0o9GvqUe95tkZrTv3u1lLK74x+ojY6MF9X5dcom+\nGKVqjbxnBS0pETnTke1B2WadAsx1vwJDlYcWWV0rlX+13z8eJcr9UtSa9jJc\nek5/zrS3OMj97uhxMledUNQGn7GOC8BglxWTvDikmHKfDyjxMmhbMUti2LTf\nPo5K\r\n=hl2Z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhQ70aN86PFWNID0D36Q00JQSPGyELRG0M5xCIwf5CegIgfw7UpFHWO4M/AsW/P/D+FtuzSD+gAPTL+5JFPMeKOsE="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.dc26c709.0_1591388481208_0.925397292750288"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.b9baf6db.0":{"name":"@material/mwc-list","version":"0.16.0-canary.b9baf6db.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.a0dc2b5c4.0","@material/list":"=7.0.0-canary.a0dc2b5c4.0","@material/mwc-base":"0.16.0-canary.b9baf6db.0","@material/mwc-checkbox":"0.16.0-canary.b9baf6db.0","@material/mwc-radio":"0.16.0-canary.b9baf6db.0","@material/mwc-ripple":"0.16.0-canary.b9baf6db.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.a0dc2b5c4.0","@material/feature-targeting":"=7.0.0-canary.a0dc2b5c4.0","@material/ripple":"=7.0.0-canary.a0dc2b5c4.0","@material/rtl":"=7.0.0-canary.a0dc2b5c4.0","@material/theme":"=7.0.0-canary.a0dc2b5c4.0","@material/typography":"=7.0.0-canary.a0dc2b5c4.0"},"publishConfig":{"access":"public"},"gitHead":"911d44443a75be4f249c595f2fb8a90e42365c6b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/911d44443a75be4f249c595f2fb8a90e42365c6b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.b9baf6db.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-9KayGiX5fDxEMiUJgGE9M+4QJ4Uwf4h2QrQAOLHdSh3ZKEDtSZUF0qhyrFvYC4xr7sBOPmz7g0fsrh43Kmv8Cg==","shasum":"c2326b1745fecf90850f3303c473b105e849deb3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.b9baf6db.0.tgz","fileCount":80,"unpackedSize":922034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2qmWCRA9TVsSAnZWagAAlDwP/jWr22Vt7896PafpexGd\ncLlO72zEsmwjn7dwG2EpV3fKd6uRBNfxNSkPq6iLcjLpeIBVDTUC/SNSPidX\nwswQbpVN3v5dpM/QiIPAhD7fDtjpZTiIsRnN13hMmOE2XCsQZ3i3jYw7bKp4\n1+dHS9gWwLNF/z1aMoiX8VKoUyt7zrMwRWSmEwF74SVqo3em9Pt+X2uCosBU\n+FkQ6/B4QfssPkNke2ZoA0cQESEA78mf+UxOHedSXQ9gi+fGPBu2qCPZT1J/\nLP7YB+dn0VArCQUYVnfpseCqmjR8LqTByuB2HdL/3ISs3hgHJgFmvyaiCCRg\nmQiRE5a29zKSOJVlmJOS6lfrXuo8JFWIelmdunD3Br2xzyRipccJn/Hp67ID\naFBnB25i5stMH3PAzxNgxLQfZgQc77J6S6/jmUII9Wg+Gp0Q1CcXT8ybpBaC\nWW7fop1ds8ynykrRCbj5d/L3+AMgFvLFJPDV3pXgQ2F7EEofBvwKThWc2VrF\ns8+e6AZc5cL/HS4+btMPknX+F/FcYAtMlhbt2Z+ZlODcuwZe3Ht9gD4yq4Kn\n5TOq4AJ0zidbRvbIdCIrfzy5zRX/zwjg4S3EbP4aEfXXPS4aTcUoDNtei+kH\nwL5gkREe787PYxsNX1dC/352n7wVKY1+WAkadcPKaEiffieTSvCH9UmAH+Rh\nZClO\r\n=CCVS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICjus5ElS84OUKjdbakjufjfSQqXGdztdqoedObn5gjMAiBfZ0c/yT/sOw037Mzd75CsWYApzvJs6jxvrTCFXA5O4w=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.b9baf6db.0_1591388565793_0.34509712657559355"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.e0b8c9d0.0":{"name":"@material/mwc-list","version":"0.16.0-canary.e0b8c9d0.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.a0dc2b5c4.0","@material/list":"=7.0.0-canary.a0dc2b5c4.0","@material/mwc-base":"0.16.0-canary.e0b8c9d0.0","@material/mwc-checkbox":"0.16.0-canary.e0b8c9d0.0","@material/mwc-radio":"0.16.0-canary.e0b8c9d0.0","@material/mwc-ripple":"0.16.0-canary.e0b8c9d0.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.a0dc2b5c4.0","@material/feature-targeting":"=7.0.0-canary.a0dc2b5c4.0","@material/ripple":"=7.0.0-canary.a0dc2b5c4.0","@material/rtl":"=7.0.0-canary.a0dc2b5c4.0","@material/theme":"=7.0.0-canary.a0dc2b5c4.0","@material/typography":"=7.0.0-canary.a0dc2b5c4.0"},"publishConfig":{"access":"public"},"gitHead":"8067f7c0024a048e98d327efa458b70ed21da6e5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8067f7c0024a048e98d327efa458b70ed21da6e5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.e0b8c9d0.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-SpEe5yryUQB2Bbe62LdFadXUAb6PPb16yCmzpxqWKMeQ22FDuUkUXYW4HP292N6VvsSRj4YMslwLIyfCpXjstg==","shasum":"c24c7d8dc8ce2d8b2e2f122da66a38bf829edd15","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.e0b8c9d0.0.tgz","fileCount":80,"unpackedSize":922034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe2s+tCRA9TVsSAnZWagAAjKsP/j9sxE3uUCdH4eiQpExn\nG8+u4ooC+mRu8wrFOYMWLXiTn+6F9fB+p+sMQAUYPRIpHoh42VUB7BDHULtw\n6FHgwfSOZhq36asAqfs1S0rV0gXoE9xr0vD3XgeF01JUp+GWR33oSdoLhquW\nmMkPpwM6EsTV0JuVLBEOozmq1bnTN+RBlc+l9eG83Ky3D9fgVM2FOPDpQVOS\noPhrz/855TW1UVWDIGdEWLh7ny7dKsDWIPqxdI8pY5BB8Yb64vf84Wm55X44\nu+Ps/fufdL/1kcgawH81mmhJIBwMgR+0ctc97OygXC/s/RCl/UZFVv+Gfn1m\ncHr7Cp8n43fTSjeI7u4yFSat3KrRjVpaJHcJFRuLPemXT8cR8ScpbWeeNspr\nJ928MxxU72m2zwgJBx+xyd4x2Vus1MdysVAh/ACiVn+XCmjT0VJSMl8ZL1JY\nGT1q/nisPqgIk5KHTQ50txXFQoLsMUVo26965U1OLYfauxfKK/3jiuLBybKL\n1kSxLJrpohqSeoPLopM3P65qF1x9snUuSfTQgwiaM3XoFsDhyDvtRgO3IYQr\ng6+5jEqkFHtC17JLpQimdRXNukPuOL/EMdWsRZrfhd3UqfKrH9GvR1vNK2rG\nwglTKaWxxReRibr1rZYKqNxXsygXDHuEkPrjW52V+piktqtKTWcIlgBEOFaN\nc/5+\r\n=GJwW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsHHIkXXVo6AXb0UpVJPu3Prl5vxAf4pDsB/caNpbaIQIgdtKiV6iz6519UMwEciiEUCPGXLCUMfVPx+ETrrHbBb8="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.e0b8c9d0.0_1591398316262_0.14132148802973998"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.51552859.0":{"name":"@material/mwc-list","version":"0.16.0-canary.51552859.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.39e6f71e2.0","@material/list":"=7.0.0-canary.39e6f71e2.0","@material/mwc-base":"0.16.0-canary.51552859.0","@material/mwc-checkbox":"0.16.0-canary.51552859.0","@material/mwc-radio":"0.16.0-canary.51552859.0","@material/mwc-ripple":"0.16.0-canary.51552859.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.39e6f71e2.0","@material/feature-targeting":"=7.0.0-canary.39e6f71e2.0","@material/ripple":"=7.0.0-canary.39e6f71e2.0","@material/rtl":"=7.0.0-canary.39e6f71e2.0","@material/theme":"=7.0.0-canary.39e6f71e2.0","@material/typography":"=7.0.0-canary.39e6f71e2.0"},"publishConfig":{"access":"public"},"gitHead":"be62282108625892e385a5b64edabb5c9949ca75","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/be62282108625892e385a5b64edabb5c9949ca75/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.51552859.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-hbHw6KIPM9M3MvDmQzhL4RPpEUOmczhTSFHw7f2USlV4Q2U/WMD8gfNIbzsOYrNR+JhB8iU4DjCREZA1D1kQ7w==","shasum":"f42001422962ab8a519f9cb101b1d92927d30031","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.51552859.0.tgz","fileCount":80,"unpackedSize":922034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4CR/CRA9TVsSAnZWagAAFqkP/2NcmoJp6OWDdhEIRJZ8\nW/aZWLHJ7Wa6rpTYQZiC77mR8KiIk0Zhrwb7EWwcP5mwpwvHKXTYh2v+zYso\nGbehF1fknb7+ZLY2JGw0r21qwwPQkQOSCEuGtrLBKtyOw6SY9kXzmNzo/Oot\npZytpFrQCSpb/roZjkSLczk+MoJG3NMxNMjFdQLYWNGyYuy49MSgqXnZ98wi\nChKq9veHGt0qu3dnrH75taCtW6FuJnkcj2CmT2DoXLjt3i2O9Ibcfj7uJumv\nq8dneQx7dSNZx3QtYEvoyzlUfQrAARyr779Vn98aQ2zybJCfmqSzb4HgDSAw\nITFTmxEQ45oUEUhSkU2pfIef9wQMIabmqIRd0NiIQe0MuMtOsqeeMpUsY1MB\nkBMtw1y9AmNf70+VqQk088iY/7CiLofbl6B80H21AOTU6brAY6n+14OLj52g\nFiV0CUW6EmpngONGuEMWDnp3J9YN548k33L9mz2/edxgBjkWf4lUcJraFz94\ntz0MBlSVR5nQEwJ5qLE51yVzeE+zHE5vSdDZhZX1f4QJ7b33EiiHRA6KzGx2\nTDpEinEOM6ryzu0+tjNqUXcII3mTqta0/5VAN6s8z2N82ICXF4emt4FX4dum\nQV0ZhZl6jtE+89xogq6vy5OJQUhQjroGlaikOVoOtwiCVEPBp6DJ1rLp9+XW\nS7vQ\r\n=clpG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDRIHCiInfdpT5tpgDpEdfLpgN+q9r1Z56V6E1+XyJIxAiAIcNYEPNU3t9l/QOqRFHhhHoKzAjmaXzWUdFa8oLSJ4A=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.51552859.0_1591747710485_0.7786461031199094"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.2e269285.0":{"name":"@material/mwc-list","version":"0.16.0-canary.2e269285.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.39e6f71e2.0","@material/list":"=7.0.0-canary.39e6f71e2.0","@material/mwc-base":"0.16.0-canary.2e269285.0","@material/mwc-checkbox":"0.16.0-canary.2e269285.0","@material/mwc-radio":"0.16.0-canary.2e269285.0","@material/mwc-ripple":"0.16.0-canary.2e269285.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.39e6f71e2.0","@material/feature-targeting":"=7.0.0-canary.39e6f71e2.0","@material/ripple":"=7.0.0-canary.39e6f71e2.0","@material/rtl":"=7.0.0-canary.39e6f71e2.0","@material/theme":"=7.0.0-canary.39e6f71e2.0","@material/typography":"=7.0.0-canary.39e6f71e2.0"},"publishConfig":{"access":"public"},"gitHead":"de64737d606dbb8ab6368d8fa30690e62fa24cb0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/de64737d606dbb8ab6368d8fa30690e62fa24cb0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.2e269285.0","_nodeVersion":"10.20.1","_npmVersion":"lerna/3.20.2/node@v10.20.1+x64 (linux)","dist":{"integrity":"sha512-cpdPNsSadVBQMIz8azMGiA79TKwmzDnZJnoIvOVY31gOUETQytTchLkeN+6pkds1B2j8fUJasaWZLRYg4IQ/GA==","shasum":"571b4bdb32999fce6fb1cb24b97479499a16e396","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.2e269285.0.tgz","fileCount":80,"unpackedSize":922034,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4DkCCRA9TVsSAnZWagAANBYP/i/WSoYygLOUDygjpIBT\naEV5AN9kTGUva3jmBII/SSPcAkAYx/59PMYX9HvJ+yE9I8f3XQoc8+iAJcVR\nohbb3x7naeeL2P8bi7h9v0eZGoKsMY/hE8P3ruVyGBguttZTdGM2PLQKjFyJ\npyEn1n1HzgMaLbX/SpgSIVoQRSBsOx2Id0+9o1soJE3ZVlTefe7yiEJ5E+ux\nT/yxJNQqhzY+sSBZP3kdjzkqEat+rIIhOzMOHDCvhvOfbVO1lTNEQHDoX4EM\nHEiBfhUiJrXlq0NDzLFhEIczhNqhgpm9LwSpbz/VrjOWu8LonKjb3qILOoTs\nAqj0l0jad/OfR7zyUiisNMkgFQnCigzt63rlFfD5Njm8C01weCFa2D0fwsGm\nXDYEjKlVOPFhQGI+hfcbpvGES+4oXbwgDLohFp4VxOPxTAF80hbjjDwFGfQm\n1Lu4H261FRIpMq0BiCshnsMbVrvdK0Fhu3mRWqzTSq+m1yzdgPwGHaBtqTcR\n43JSRCn1uCLB1zthaQIsp5Sf0Hcbgk8BeDAixs0OaKqWHfSoBGfEG/iAn7sR\nX1hIpgHac2nCnpE94gRp3tlrWmHhmiF3OtBM4YgRDT85W9+SE2GHXy7//wOa\nt5foDMyBGQR6POJfhZQxyDRs2oyX+nyDJR7WbjZbBOJpwZJP31Xfz6p6q7S0\nCPGh\r\n=pAX2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHJ9d3TqVN1uEnUfqYWHC4MpyQLu0OOKvl+SvrCzx0CwIhAIkFEffRgcOFcHFieAtXhaut9JjugxOaVCbcFYP3yhVD"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.2e269285.0_1591752961988_0.3679984943265133"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.be138b01.0":{"name":"@material/mwc-list","version":"0.16.0-canary.be138b01.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.39e6f71e2.0","@material/list":"=7.0.0-canary.39e6f71e2.0","@material/mwc-base":"0.16.0-canary.be138b01.0","@material/mwc-checkbox":"0.16.0-canary.be138b01.0","@material/mwc-radio":"0.16.0-canary.be138b01.0","@material/mwc-ripple":"0.16.0-canary.be138b01.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.39e6f71e2.0","@material/feature-targeting":"=7.0.0-canary.39e6f71e2.0","@material/ripple":"=7.0.0-canary.39e6f71e2.0","@material/rtl":"=7.0.0-canary.39e6f71e2.0","@material/theme":"=7.0.0-canary.39e6f71e2.0","@material/typography":"=7.0.0-canary.39e6f71e2.0"},"publishConfig":{"access":"public"},"gitHead":"cd3bec5fb787616d9ec3c5e011ed8224add04ad2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/cd3bec5fb787616d9ec3c5e011ed8224add04ad2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.be138b01.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-TD6GOAFxmhxrcvwPhP9UaLWOMcfNTgJbuc2gH7lvnuwynhvz3dSiLdYlvQ3scV85aDZ86IH19KgQixMCX7Wqwg==","shasum":"20e150732f1e4b1875015aa5c3ddbac5cc96a6db","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.be138b01.0.tgz","fileCount":80,"unpackedSize":922129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe4UdaCRA9TVsSAnZWagAAVOAP/RfJBZ97PJdj90Yf+CVc\nBH3MWp1ATXc+wpZUgAVLaUoOsGISMLpwhkwqEvLs6M0iB022XoE++OMNwfZT\n0EysWvRmdw29bbaRiUV+v2ZTo3nHzf902E27B7m+Dxv1e/4M2s+QtACiPWed\ndSy9r98ycPVagM1LufJChUSfmWqqySHNkMaMD7PDTdXMp9u0lwdgMrv2Yr/s\nCNMMj0PdoTPKyKeJ1qSGI87wWzxIa6EJFpbPGhoK57PsVuMH3KS/vbkV8p+U\nqjtwKaPT3W/i93J286HP17g/I+am2FCSFoDPDjBK8TJSGyw0GoSF65CCsmD+\ncXQ/jLAYgsVssW8nIRz7FTq1Ymv4n7CF98RZ5LcENuUctwaufQVRu36wlfs/\n+lc9axJGf0UaQVKd6rxWI1M+0Lpe2cPDOP+4mPqNRTFCHntL79Ti/aeU/bFC\n85E7LR88TxAH9Sns9iukgkBBIgc3gorKXLA5PW75DaUEz0Vm97mQw9xWY2n8\nIjjnQrwBccV4Few6TO65gGG+04gRhraK5xvSvct39hLUZGuTNMlQ6o89i1M+\n+lzdDl/AfVj/TkzE+nygoybJ+08bG/GQ3S5GppCDP6OU5wk8J8o3QmmtFr8R\n//H4cVKXQeyLPwzfx24YwO5gOUSIZsTzoU4ORTRti9DvSQiZkU9cBY4fRktG\nIo4u\r\n=SHak\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD1s7n03NZve6QxznxCG5FNbWA1UjfAOwd0wWCH6Gkl0QIhAOgae6aQuiaiHlwfkfQsaQLuWGN9CP2djDYKjW++4P/b"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.be138b01.0_1591822170122_0.6524676610313238"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.04bccf5a.0":{"name":"@material/mwc-list","version":"0.16.0-canary.04bccf5a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.a6ac8f629.0","@material/list":"=7.0.0-canary.a6ac8f629.0","@material/mwc-base":"0.16.0-canary.04bccf5a.0","@material/mwc-checkbox":"0.16.0-canary.04bccf5a.0","@material/mwc-radio":"0.16.0-canary.04bccf5a.0","@material/mwc-ripple":"0.16.0-canary.04bccf5a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.a6ac8f629.0","@material/feature-targeting":"=7.0.0-canary.a6ac8f629.0","@material/ripple":"=7.0.0-canary.a6ac8f629.0","@material/rtl":"=7.0.0-canary.a6ac8f629.0","@material/theme":"=7.0.0-canary.a6ac8f629.0","@material/typography":"=7.0.0-canary.a6ac8f629.0"},"publishConfig":{"access":"public"},"gitHead":"c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c077c9c7d3e6ab509f750f7ecab7ee8a858e7d22/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.04bccf5a.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-070i6MOHQZqcUdQ0C6Pp83Kidx18uddPANcYs2Yxtk40zDXkjs5RchEEPQ5Ocw5+tQC1V5sky4DBidHwlmE09Q==","shasum":"cbe76472eb5e765e62adda32e78ad5d027638d6b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.04bccf5a.0.tgz","fileCount":80,"unpackedSize":922129,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6BlcCRA9TVsSAnZWagAA8RAP/3OIWp+7GOVHxCBohXAg\njlokBmsdn7ybR2FlTmnODHP53KZn/JJ7e/m/FfwaJodX0kpasVOTW4b+wtpE\nci1ASXCSQOjb9qlNcgxLkyPrrQtAhnXLqSdjnPmVMNfMon0yc/zE286l6aA5\nvTwYqj3lkejqVLr9v36e0o9TWx8YEZbl5GLg3LPPRhMZ5553p0VvCIya4p2U\nVr5syko0rHIr/HhdROPzGUVnX3W1VoK3vgB5b4p9vGqffqsK25mu5fCHT/y3\nJwj7QRXtwjKGbz1z9oidmHpkvamrSpu+f661i4hMLHgU1zPgEEh/Y4SNXfaw\nmvEi3r1/o5JQr0vkFZNNBZX1BLUAXPKk3iPfWy6AB3b+vtSKLLKKco5jsdub\n90N2EfZjybRj0b/5sRW9or4kAWlmzhNiq2oC9RcVtl/zrRLDIr32AvdjS8eW\nxPIu2xdMe6apu1nT2n25wLTgqyI/kUxeZ3+8XTVaTDU/KvD29K7zsQKisUOR\nbLkl5q55BOe2B4M4gByiUvs9UfuVTEyNpubkrB08mzXWKbx1cH+8h+ud8e2J\ni3ASe4NScTxFRX5fwsGkWm/ObM0P5njQuOXPxDN8G8hHdUIQ9ICmgGoTNGtb\nA998iBpm3jp+WNk2ljfjlA9tfirwOiIWA+oGN1x/s7xTqkMONRbBOv7Ul6rq\nYh4W\r\n=crD/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC16TedtQPjDyvjZJRypBtKspuyB4GQpaOQ/VKe+tT1ZwIgEOLp0pcYHsXO/Ap25HhQKjKwip9weGNK5j6CZF3WEoE="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.04bccf5a.0_1592269148250_0.04783367970371111"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.b44dea36.0":{"name":"@material/mwc-list","version":"0.16.0-canary.b44dea36.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.a6ac8f629.0","@material/list":"=7.0.0-canary.a6ac8f629.0","@material/mwc-base":"0.16.0-canary.b44dea36.0","@material/mwc-checkbox":"0.16.0-canary.b44dea36.0","@material/mwc-radio":"0.16.0-canary.b44dea36.0","@material/mwc-ripple":"0.16.0-canary.b44dea36.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.a6ac8f629.0","@material/feature-targeting":"=7.0.0-canary.a6ac8f629.0","@material/ripple":"=7.0.0-canary.a6ac8f629.0","@material/rtl":"=7.0.0-canary.a6ac8f629.0","@material/theme":"=7.0.0-canary.a6ac8f629.0","@material/typography":"=7.0.0-canary.a6ac8f629.0"},"publishConfig":{"access":"public"},"gitHead":"c3acae783f88caaa2b0db088b82e7b98ef4ecd95","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c3acae783f88caaa2b0db088b82e7b98ef4ecd95/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.b44dea36.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-cZxIteDR5Y3GyoQeOd8HoVciIX9hF3XV0Pb4WG2YwRg/+7j62dkGoWEU9r09didQSctFHTFpnnlyAlwqXFlQ/A==","shasum":"ba10091b83992fe346603175d98c2a78d0d7644c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.b44dea36.0.tgz","fileCount":80,"unpackedSize":923215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6TJkCRA9TVsSAnZWagAA+78P/i+07xc3jaeAXzrmiS8r\nAgzxJLWMehY/ZdoCAmU31HTdn1x/ATxCllpMkCraiW+XeH8KjXa7qmcaVmdA\nPAf0o3McBQxalWAsBG8/h5QCg4/hcUsCL58BROvBIsL//D1q+iMvuU0a4/fR\nXYZJncdycLr34Oo56bX1ux6NK8Sftq1d9GFUgPOMorWiywsDYnzDSv4r196z\nSev6U3YzLM0vtDdc3OszjELJPdTAioO7/lOJ2a40Xty8DwaFbJAmDpUHMyVp\nkrcVlObryR1EJMxXj4/Ug0xE0SHTvfrM1BVQswpDXpOIjPBGhTRbzBdMvSKI\nn60LcIra87802lgkdZ1k+rLY73No58mgk8+NQhOttCd9D4RuwFA7b30K7bi8\n4Y55dXoadzHQ/8A0XmWTr7OvOaAm1R6+f+PZEvl+/eNOj+bfUgi2l9z8jMYd\nSwb7hThQ7HAggT8/CcVSdSB8S6eepMM2pOoZYBfQgO6yP6Z6TChfpq5cZKxh\nAOh3xF2WVZ5aj1kJDG4VTFhhTiJKonYComNI8O/I7nfEpiCHfjkZ4TszQ84J\nYRwxFA0XBP0vgPR/OeDYhRyZ1c6cd//JJqMmkUkgI2SD7cHRavxlL8jP0Tq2\nHgXhYEUotxUHZvHRVmUOM+A/WLnCTp5ebJZaHbLb0grE7faa09h8aCIi6JHs\n2oHt\r\n=sZ2E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCo2rd2mACLHOPYFf8+rnEd5fferxDUVCjEwzYZLG28jgIgL7suX5x/Nl4vCPEdaRZ/1JZt1OWxjWSuC82FsO/2Zw0="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.b44dea36.0_1592341092450_0.46932659138271693"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.e2577e87.0":{"name":"@material/mwc-list","version":"0.16.0-canary.e2577e87.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.a6ac8f629.0","@material/list":"=7.0.0-canary.a6ac8f629.0","@material/mwc-base":"0.16.0-canary.e2577e87.0","@material/mwc-checkbox":"0.16.0-canary.e2577e87.0","@material/mwc-radio":"0.16.0-canary.e2577e87.0","@material/mwc-ripple":"0.16.0-canary.e2577e87.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.a6ac8f629.0","@material/feature-targeting":"=7.0.0-canary.a6ac8f629.0","@material/ripple":"=7.0.0-canary.a6ac8f629.0","@material/rtl":"=7.0.0-canary.a6ac8f629.0","@material/theme":"=7.0.0-canary.a6ac8f629.0","@material/typography":"=7.0.0-canary.a6ac8f629.0"},"publishConfig":{"access":"public"},"gitHead":"4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cddb26ad140f9a5ae7e41d4f66258da9ffadc5f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.e2577e87.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-L4S30zoZoVJ0AZPgmfkxlZc/rqNPik4yScKuVIlcJCds+58OhEjFJrvKaO6hPJHsIJcip/PZu7/Ps3SbTvIV8g==","shasum":"4e6c6d637d4da39749d92888645b718833b91afb","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.e2577e87.0.tgz","fileCount":80,"unpackedSize":923215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6TTuCRA9TVsSAnZWagAAjl0P/ApzdYinRq64wAd5E+4P\n6r5U4ZwzxAtiMemheVShcfhJp/bchIlyFsLSxPe/bYoBo8/nil8yCX1El7kk\n5G+9iXQnFjpi0kwgptSP56qzlDG22xUIJQb3TCqkRK2EVf5VGc6t+xkuG4WH\n/Yi7igyl/BhMD9av3jIeJs2CHIQcHuj0jCeCuDmOujyt1F8kNqAthDn+mxFP\nsrZu2ATN1g8x8CJtoaiKmytTm0fzhqw5k4rW7Av0hd0SpbcZTeXRPgd9/ir3\n42hZd6ahTY6rQGcLC0LdKUC0GT+Nmhukkbp8K506xJKYNBdeWyfoVlPdOF4z\nyCZu+eR95tNx84o5auxzeYzp4J1Z8qeKs3XOYR0TUCcUEy4XLUWwklJ3AQY/\ng/HPmMAorvAVWYcr7/mZ7VanAfyQTuDHT0iPy9tXFj9QdDh/HNy1tSOGVt5y\nFoFUw7TtZGdz6/3uDdQMYg5K5lULB8Wjnf1qZ98+js8k0ChWLSgc8PbRU5op\nrC4xxuXIvPhl9/wz7TxVhbTBopGz05W/bnhVxEHBzFlHYw2L3a/r1ZQNPoDF\nz0R12S17wuO610NnDk7WfroohUBSGFXW0CnrnGcMDuhlFaE4NwX3y3oKmHOr\n1OooWIj+bUHpewG5BQnwhiP/J/6gi/8uOgOXicATwxVc3SzAe+XRVOszcZVb\nbKPd\r\n=9O29\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEYz2M7Pbg5y7CgTXtxMba0/oDiFt6pn54PLhubC9gkVAiB6vj7DrihlFww72+52B1XxJTyfI9tPQWdhPZRWBNahqw=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.e2577e87.0_1592341741687_0.05966629670665924"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.58b73343.0":{"name":"@material/mwc-list","version":"0.16.0-canary.58b73343.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.3aa33998e.0","@material/list":"=7.0.0-canary.3aa33998e.0","@material/mwc-base":"0.16.0-canary.58b73343.0","@material/mwc-checkbox":"0.16.0-canary.58b73343.0","@material/mwc-radio":"0.16.0-canary.58b73343.0","@material/mwc-ripple":"0.16.0-canary.58b73343.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.3aa33998e.0","@material/feature-targeting":"=7.0.0-canary.3aa33998e.0","@material/ripple":"=7.0.0-canary.3aa33998e.0","@material/rtl":"=7.0.0-canary.3aa33998e.0","@material/theme":"=7.0.0-canary.3aa33998e.0","@material/typography":"=7.0.0-canary.3aa33998e.0"},"publishConfig":{"access":"public"},"gitHead":"ba9eb85b43f514dcacb8e7517e4b8728a3629bef","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ba9eb85b43f514dcacb8e7517e4b8728a3629bef/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.58b73343.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-Te4Da000cgukgAU/L51arDF8WniZti9pLtfRpAQjA+D/kCjLGVtiNfKqOeINxOHbtc1ldTwJAhIiNLEU2rhNtg==","shasum":"bc31664cdec030704a3d8ca5d22844a1f649c070","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.58b73343.0.tgz","fileCount":80,"unpackedSize":923215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6ThxCRA9TVsSAnZWagAAWXAP/A/xPFp2B7sK5DCR6oBd\neW/p/Fb8Hdha6uFmOG7fitEBAy1XDASWB4RTncm4Sq/nSkoS5XFsg11CG3uv\nhEkE8iSOJofCfFD+/1LC1yQ7LMYHOO3vzP/vviaHz0aQGdhWuna1049LwWEV\nGPPpR6fnZac565VTi1117LfOP9XAarkRdCRt+m4F45qaxrVS4eQ+Bu3hvigY\nxeruXqlYBg4DB09PhZM9EMkIVzY2zEh9jxFpkzFYM8HQQ73/qWqM3GDy0Ete\nL8UGgvQMpjL8PqSJHkzVBhymSKlzrZufnsyNV4FfZqiUgcf/D3Gpb9iD7FVV\n7Gm3jU9mrt8bTsCSV0bVPn4LcWHQL6h/94/XTMAJ937FrkH9rDa8P8W8rKlT\nzHwDgI4n0CEWshXrlUYSSCyhqVtRQJQmuaV+JM/V72B0wnUYA8HHFRdw1TSb\nbxoeiBn7iZ1JuNu50ojobgy8dp5kMohn8OOn+aIWANc4Azet7QsvLh7FI+Jq\npj4Ejagi3f0pD+3aVYjanGArBYiZLrkEdh1o6Aj0QL7WTRyTc61f+NcMFapq\ng2GTFf9TAxmFFz2D8MH9LayP22G1q7nlGiy10qhWpShs3LMnTnwE3ikFQP/P\nrTqsIVlenoGB0IE9wAgmkEjTztr33MU7fePfsKrifhmdpgxgXvR220S6W3wr\nIs+N\r\n=/10L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHZhmtL1CyGO2ECg3iKKZ0GBtj01dWbMPyY7cCjpy1g5AiANznTXtI/C8684HvtnQauEeiN/6QRhU8TCJ7Pwcr/ZyQ=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.58b73343.0_1592342641485_0.126073343034802"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.f155c058.0":{"name":"@material/mwc-list","version":"0.16.0-canary.f155c058.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.f2a488e95.0","@material/list":"=7.0.0-canary.f2a488e95.0","@material/mwc-base":"0.16.0-canary.f155c058.0","@material/mwc-checkbox":"0.16.0-canary.f155c058.0","@material/mwc-radio":"0.16.0-canary.f155c058.0","@material/mwc-ripple":"0.16.0-canary.f155c058.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.f2a488e95.0","@material/feature-targeting":"=7.0.0-canary.f2a488e95.0","@material/ripple":"=7.0.0-canary.f2a488e95.0","@material/rtl":"=7.0.0-canary.f2a488e95.0","@material/theme":"=7.0.0-canary.f2a488e95.0","@material/typography":"=7.0.0-canary.f2a488e95.0"},"publishConfig":{"access":"public"},"gitHead":"bfa2e71d76745185343aad4d0a9a2b6c3b134563","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bfa2e71d76745185343aad4d0a9a2b6c3b134563/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.f155c058.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-tPS43GOGtIM61k8raaV5MXVCvvXx97egkvTxB0xI4Fo0Zb+4jmmO7jbY4ytb7mJlqfj0FAOPkJK8O34ehxUw+A==","shasum":"0292d791456ab3486174b7aefa3172bd882ff504","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.f155c058.0.tgz","fileCount":80,"unpackedSize":923215,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe662LCRA9TVsSAnZWagAA4IMQAKFzf9DMogHqk/BIJCGv\nlp/IOFu//ueNQL+fNS84uhhC+QlhXZ3pGkrQ2o3lPPL1ed8i3JwteVevMJOd\nj6XItQ5/jpaAGeYH5iNDX+ueUr0N17WAbgODXZPlrwgZs3yRVrkQUdnmrncA\nLOyfOGiKYE7eVW5JVvUSo0/1DgGramFEcP7JGe3CODYvX0gDdqtcC8MQXxpX\na1wpz3yt/8WxVRXCdBXCEvmtD4eQxc+DN0xloZ32dP/tPHYB/NQrK93QI2ut\nVKcharb6GtiyxDSsP0sJdZVL+deB6XVPdnQUxvgUEsChVy4LDvssWLutpWTs\n3hAQY1LqiLnrGeMEVHsFGYJWxqrvuNjWATOC9xpEBg1cymDymSHjOlH9+QOM\n3KJyRXB5Mli0HVcrFUAh8hk3TwUMRZBKrXjTEoj14yJxsaC0aMYfDsa6pgZo\n/vAiJbWJlzV9CCY8Ygu/8KNmNQIvPg9lVA7VUzivO48QOpBQ1MVz4rhM8wWn\nGN0NbUMU0K4uy7vA6S5OgBjSCWTktH4rGR+To2LDAYNp+87TQ2pINEb3r/bz\nI1J8vS3+RMbYiXjrN1lHT+JQkqZpe8WOqfSRsNZugiQ7NousxqwsyTqugNKd\nETmynFPcauZSanL1LTr3j8sUvZemX8IaqQlZsCGAPZpvcePcu8dfb6C4psSB\nKp78\r\n=1IPq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCpvdlsLqoSl8l+lVRPiVhn8fyyLJig3lstk3GHrIhSXQIgc65+NPNrXCZQFPhIbNxuvJhZ1gsIJGzCyR0xJOGFUUs="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.f155c058.0_1592503690892_0.8707210636141223"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.309779d2.0":{"name":"@material/mwc-list","version":"0.16.0-canary.309779d2.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.f2a488e95.0","@material/list":"=7.0.0-canary.f2a488e95.0","@material/mwc-base":"0.16.0-canary.309779d2.0","@material/mwc-checkbox":"0.16.0-canary.309779d2.0","@material/mwc-radio":"0.16.0-canary.309779d2.0","@material/mwc-ripple":"0.16.0-canary.309779d2.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.f2a488e95.0","@material/feature-targeting":"=7.0.0-canary.f2a488e95.0","@material/ripple":"=7.0.0-canary.f2a488e95.0","@material/rtl":"=7.0.0-canary.f2a488e95.0","@material/theme":"=7.0.0-canary.f2a488e95.0","@material/typography":"=7.0.0-canary.f2a488e95.0"},"publishConfig":{"access":"public"},"gitHead":"5227f0923971be3709c93d0a8ec0d85564fb31fb","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5227f0923971be3709c93d0a8ec0d85564fb31fb/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.309779d2.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-Bs5sCYUC6Ec0rXcijij72HbjsMATfee5ybQqNT8qxgNQrhT3VdSsVYIkvkBXN7T21tYoSugdKkwbYinuMt73Sw==","shasum":"5e298ce10559bbd842ee3acde8ddc32573a5e9dc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.309779d2.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe6//DCRA9TVsSAnZWagAAaxQP/38W/lzrZcU5qWQlbuWD\nONLAwOY2bwl1Lklg0PESShIhkP2UKtPLMSMuC0Bhg5jdzS7RZTeqxXrlAjZL\n+Cvi/GdU+qEI1uPIW3gblNsn/QYO9e+BvGFWFra9q5RSgu2D0UhEnuVVNjrZ\nuj05Z5nInCdOek2bH1v+Q4KrX2ZY4ZT/gkwnSQowWnn4/6X0KC2haIuWYs5s\n9VNlpPgQKaVacZF9oqFpND9fdMheS9U02gNX7P71iaIHG+SaEqVvhhjowvV7\niZLu8x/eWpr3eo2KA9dRAzbEvwiSeBYWvFhgBSdDxFVy1raoOXMubPA7p8zC\nblKJjeurfSxm/lk4pT0kf9RlV1DCpRlWmwLnGeMT4vDDFcP+3cI+e7jzibHD\n03mIy4fyhPdQEkLxTF99+8E5hyrUajVvkCBoINkqMOEbZMcaS0xhUOBZAWxJ\nJZphimRJyEDoxiqjFEmeGhQz4JYxnB154t8/2l+FBupz/dfRkCeohsTz29Q7\nFnv9IQZU1IEvCFtjaZ9b5lXUQA0gOfiyMGKCXIShr/Ldtg6jC9nwI/ZKknv1\nGSGcJQnKGyui1S2AxnWcHfKVPIhgJo0bu3dLGvORfkTxn1nbowD2LbxJk+Ks\nALiJ3uXAfGeVjIPLj1TPj6chN94ee+IEZ3+DBs1HZs6no3EvenNIT1GvIth/\njpwl\r\n=oVqu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCjSle1mxYOeR+s2PaJerWpB4zTnXSlZyEji+c2tWTokgIhAMvjrgvU/7DH5vQ9APoH1whvB4zj7xfiOyXHmBigw/UX"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.309779d2.0_1592524738790_0.021158425035221695"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.e7649968.0":{"name":"@material/mwc-list","version":"0.16.0-canary.e7649968.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.f2a488e95.0","@material/list":"=7.0.0-canary.f2a488e95.0","@material/mwc-base":"0.16.0-canary.e7649968.0","@material/mwc-checkbox":"0.16.0-canary.e7649968.0","@material/mwc-radio":"0.16.0-canary.e7649968.0","@material/mwc-ripple":"0.16.0-canary.e7649968.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.f2a488e95.0","@material/feature-targeting":"=7.0.0-canary.f2a488e95.0","@material/ripple":"=7.0.0-canary.f2a488e95.0","@material/rtl":"=7.0.0-canary.f2a488e95.0","@material/theme":"=7.0.0-canary.f2a488e95.0","@material/typography":"=7.0.0-canary.f2a488e95.0"},"publishConfig":{"access":"public"},"gitHead":"33e44f7015ad267b659c9bf1d34799ab8d508993","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33e44f7015ad267b659c9bf1d34799ab8d508993/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.e7649968.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-By3fhbKNwfl/Xus0r94pR9UvI5hwgeGO1IrEVB8VLQpGlU/MX+JOaySO5qft9gK6KqrkWl/U8pw0fCgVK3huFw==","shasum":"a2ac9b7853ac65a3cc555f6ee509c2bf2360f42d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.e7649968.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe7TDxCRA9TVsSAnZWagAAia0P/iwX83D19wDM+FxrJ4Ft\nzlVOl4hGKxXT0iWZf3ge5u37vWDTDFl6TJf2MfUnw9wdhPKDmdHHSU2LKPgw\nxSD4GpFMM3NoIEgAt2vhBHDYoEIgd1vysWz1GYqRYyYB7WBcqQfOQmC/8fkt\nF4LrTryMoEcU9o1oTBB4glRxUYjsdQrBdLApqjVLaFDZ3ldmHJDseyaGgWR/\n1PDYvUbWfe+XS7jMMVp/pT922IezGFGo1ekgETyvHrxA166Ln0/iU13ABXDQ\nru71ymVnCzEkUKvWmKmHQw56IF+SSlz9717DL0OkOIQNZuuhI0YE+/XYaNsy\nIOE1hT9xPY+ojdI6oMquFBPE/t6XguvMmmPigLiQosWi5De8S80IVe1htXKz\nUb90P4S5STKldqarJ5KOTj3ClCACaZdfyq+JLD2exWICVYb6K4rwfsLDCfaz\nmiIN4YUNnUbaYdxr6nmRdDevGT8MdGSm/N2ai/xP6KmFCmKIKijedr+VoGGk\nR3kMq/+k18Go8CkW8jWxBCIibmVXYUMNG/v8Wnu6BcZoKLOTtjJF7FKUDyoq\nb/rgkVIgVAk5H7kuNIkgC2OdHL7rZ2awlyIGuYL2ie5HYOqDLNvCgMdpSU5g\nhRs15vlDe0kzjrC/7su6yVBoFrV0DF/rvQYpLqlGdMEOFcP20zO+o5FHE8Zi\n4S/t\r\n=tdoN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHOFAsguUmOdhanJLeTt2PxhBxJx6/Oz+GdPIEkEkvU3AiApNXuZrWgOuQmhjstPqS6lC0UviDIoBzzOxFuZipGY9Q=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.e7649968.0_1592602864887_0.3190757823281811"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.8e21c78b.0":{"name":"@material/mwc-list","version":"0.16.0-canary.8e21c78b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.f2a488e95.0","@material/list":"=7.0.0-canary.f2a488e95.0","@material/mwc-base":"0.16.0-canary.8e21c78b.0","@material/mwc-checkbox":"0.16.0-canary.8e21c78b.0","@material/mwc-radio":"0.16.0-canary.8e21c78b.0","@material/mwc-ripple":"0.16.0-canary.8e21c78b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.f2a488e95.0","@material/feature-targeting":"=7.0.0-canary.f2a488e95.0","@material/ripple":"=7.0.0-canary.f2a488e95.0","@material/rtl":"=7.0.0-canary.f2a488e95.0","@material/theme":"=7.0.0-canary.f2a488e95.0","@material/typography":"=7.0.0-canary.f2a488e95.0"},"publishConfig":{"access":"public"},"gitHead":"87567a000d0fe9c1fe6f2b37030908bdda7f3290","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/87567a000d0fe9c1fe6f2b37030908bdda7f3290/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.8e21c78b.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-UqrTOYei/dbUOrzme9mzi2NjrnMfhTWQQAGr8/TBxiiOoIyZowq+L7phd8nYqk4MFy9K6dvazbT5a5CyDmNH7w==","shasum":"8447bbd94113bfca9850210032186877e3f45bb8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.8e21c78b.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8IoOCRA9TVsSAnZWagAAqpUQAJGd75gs7H9/o1PTUBc6\njGQM+7sSLdYLpI+dXipTzaXqefL5RlaUKkosi1sI5wKPQZ4O67K5aFQwk/qQ\nX5D/GkE3gh+ZPJzP5jOZv1WuI+xdF7b45S9oO8s2MVvlWoOtgu1KfLGy0eSO\n3kz8IwAr/ilA1Jmdhq0XPBDTentPfZ1cwjrTg44z9Z5iq9eb4rLi33Nc5urk\nuN2SCREi4AZsoYhxxpFNxI/Vr/cKus1ymZOKZMgwocCehl4MhN4HfNVlyXFx\ndXoQvJruUh7DnPw/jARz94cS0ong5f8vvOiTC6prxNpb/0pVCnywsqZ9pZne\n3CSnhFppWd+26K+tfEAMvRKmBepmrjWavqvlfyXgovXLTW1Ho59M7Ga16XQE\nqzyu5kS5knI7NCrrkMXJqXoHcZwkhda6J7T3A/Sywrgm/NAIFq3CQjuuRBb5\n97/P+UajXdU2irtSYMs547T7Ehz4Ix7U34d0BamK23UvkQQQGn5upD8zP4Eu\nmPHHaf/vZiCkM2AUS5qwNqUha3lm4RYYo78aO+fCBOWQpIUUDHd3bDvz5Oie\n21uVSyQfuOC3DdL/p8hYID5QHF/6NBQQImUEh01gGYzM4FN6oLm2bFvBXa0V\nETEtM3KTri+FTF0u/oS30goY/9SdIl47jrrEH4XBPfzuHUKs3I5NZvQSgUDd\nudla\r\n=YAFY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIELhXNDaqvx+staAiAKud4VqdkRG2ClY3uiq+JXpqPmoAiEA9vkZKk8uEWZx/f7dbaQWalsLUkhxwrgMo/hxDLOKqjk="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.8e21c78b.0_1592822285888_0.5810767621256914"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.6db76faf.0":{"name":"@material/mwc-list","version":"0.16.0-canary.6db76faf.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.f2a488e95.0","@material/list":"=7.0.0-canary.f2a488e95.0","@material/mwc-base":"0.16.0-canary.6db76faf.0","@material/mwc-checkbox":"0.16.0-canary.6db76faf.0","@material/mwc-radio":"0.16.0-canary.6db76faf.0","@material/mwc-ripple":"0.16.0-canary.6db76faf.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.f2a488e95.0","@material/feature-targeting":"=7.0.0-canary.f2a488e95.0","@material/ripple":"=7.0.0-canary.f2a488e95.0","@material/rtl":"=7.0.0-canary.f2a488e95.0","@material/theme":"=7.0.0-canary.f2a488e95.0","@material/typography":"=7.0.0-canary.f2a488e95.0"},"publishConfig":{"access":"public"},"gitHead":"6e23f797a12e3585f2e2fc7bf0311266b8908e40","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e23f797a12e3585f2e2fc7bf0311266b8908e40/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.6db76faf.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-bTr7jeqHmoPd0wQaY2pDmA+cuPUXbbfefY+VxbuLNXTVuZ3DjttgoKZukDzXc1yJyzB3jLN7BUt60hgaKztoBA==","shasum":"09811123aabc1fbd89871f7b5c25ba298257222b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.6db76faf.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8R7gCRA9TVsSAnZWagAA6KwP/RlnIFnPFG2JBggmG+iJ\nEjx07UU6/GVbE8Aoftr+LIx/8fw6tPlONMP5wr9ldiLLXWoJQ6vq14yh6lNQ\ncI5c61IMb4P8Fa7xq+fjIbt9Eh/V3aAGy6vcWTRDXzoM92IMmCei6gwVeDad\n2/QegrWN+tT5nL8WvEbvcnxLj8O1Z3QIn/KfmvkTbLIq0qx2sYTAMC7OP5Pm\nMDwvesQJO0E6ZqWKKlcBbN0ZJzwqlfkhpPQb/6D1kA2OLzK8bKv6/d9H3qgp\n9BT7YpN/XsEfApBychi6zH9/dwBkXoo+nE00id/S2DHc+4NMbKUp4kRFtKer\nm9EdU38vjZrPEWuV7dMEhxP6jlHXDeamJkZ0nCCDdzB1JvuYTEUMnfU26BTI\nKZ3LLg17DOTECcYmnEshUeoZbSioqdytvsCvMkYBefo9ZqMnvRYnNxjlD2vP\nh5qTQHpN9K6pUuJC+/9RGWwfMjODbCzeiridnIuHnkfPsC4pEoJUneZW30h8\nElb914VMej4D8jz7mPUboS9w5vInD3Ot2BOIwZyxZSYcYcQpslZjpRLu43i4\n1r2CTfydrqQHu+wU5wPCXslQ6TCI/KkfoCp0UJPu7Ust0xscLVigRiRLx4FE\nmz0AJJvtrQd04CM6gtgaKZyutDl8SSn7HQHduEsBlKR/Mf+1JUy5PR/lGTv7\nv8qA\r\n=0mA0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFTn+BBC1FE9vJC6ZJf2ICJHHdbqLQOXf4PtlJQkLqJcAiAdF1Bv6qrmggTrfBgmjEW28zFCaJd2X/r0JGdn6KW9Dg=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.6db76faf.0_1592860383964_0.8310158234432425"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.c4dd9684.0":{"name":"@material/mwc-list","version":"0.16.0-canary.c4dd9684.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=7.0.0-canary.f2a488e95.0","@material/list":"=7.0.0-canary.f2a488e95.0","@material/mwc-base":"0.16.0-canary.c4dd9684.0","@material/mwc-checkbox":"0.16.0-canary.c4dd9684.0","@material/mwc-radio":"0.16.0-canary.c4dd9684.0","@material/mwc-ripple":"0.16.0-canary.c4dd9684.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=7.0.0-canary.f2a488e95.0","@material/feature-targeting":"=7.0.0-canary.f2a488e95.0","@material/ripple":"=7.0.0-canary.f2a488e95.0","@material/rtl":"=7.0.0-canary.f2a488e95.0","@material/theme":"=7.0.0-canary.f2a488e95.0","@material/typography":"=7.0.0-canary.f2a488e95.0"},"publishConfig":{"access":"public"},"gitHead":"4cd7dd845f6929aeb590a441e62cfb720106f05f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4cd7dd845f6929aeb590a441e62cfb720106f05f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.c4dd9684.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-kJe8TNU9o+eoBP/Kg6vG9OwwDUh7mfqpxQ9ktB5VEJVUeJhGOA/vm5l2Txe9M1Nz+t9wsaBxSNg76pVLpZyLwQ==","shasum":"6b8daa8b0f79065b31f6cfa36a788109eefbf226","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.c4dd9684.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8hyZCRA9TVsSAnZWagAAY3IP/i6kZ9rJFTiv5QLS3XvE\n/WRohd1F6U9609cAsfM4Kyqsxn+wl7yqbQfuEAyU3zkT24RoTkprTQvPGZ+e\n7lUgY7aaBqK/EbCOWUYrPhy6m3QYpRfzSRnEfPMRAjcVEhxU4Nopr/cpyFYt\nEqBWDkFYREUQTEne/QktPzCU6uzxeKrkM3p/hwDYp/azX1Cex2Hpz4GOK/6L\n1yN6tsT6m9ZJG/NcaYF3sxjMOLdiMmHdX7G0EAoTXabXuwzZdCESoPkh6PKN\nk6D2X1lGd8J5hZUXV8p3IdqkXSo7oPF+7nvzn0NhYD0nE2A8IcympUcVw2sE\nTeRPS7eoqrNig4Tt3FjBMGYBlJn5I8sXccWOe3nGH8ccvh5tzCsjdTSZQo1a\n+dWJ4kuZkwdWiFGQBvdQUBOzwRIOm1tS3Ef+crA/YWRgc7deBQMAEiPIPV6b\nsLd6P5NGqjbHbjGsv882e1GYAy1vLQt1k19DJsO2DPZq1eUf7Dahx06bBSI+\nbDE6Tdu54IyIama0mUYX4ShUCaqjl4Ki36JebjxEN4FmyPlhqBNGdlOZO28g\nSIN4kFpk+Q7Ifoht21ndLi0DuIe4I93G58m5t55obf7lsJTaxWY8aDXgvkVq\nba1g+ds1hM+6aJrZoloxFNBwbRCBksxQcUAzZc4UiAgukBKY+1CdJViicGuI\nsG+y\r\n=PhWP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC+fNvDbweY3k/uomfUAKghl0LCLIpV5yhCsE+NSIshBQIhAOTQcEDJ/z/jQAAPmX5GkaOby7M3PcXTfX0t5EVzB53g"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.c4dd9684.0_1592925332033_0.006883714443158828"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.b3e53981.0":{"name":"@material/mwc-list","version":"0.16.0-canary.b3e53981.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.15e81fe98.0","@material/list":"=8.0.0-canary.15e81fe98.0","@material/mwc-base":"0.16.0-canary.b3e53981.0","@material/mwc-checkbox":"0.16.0-canary.b3e53981.0","@material/mwc-radio":"0.16.0-canary.b3e53981.0","@material/mwc-ripple":"0.16.0-canary.b3e53981.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.15e81fe98.0","@material/feature-targeting":"=8.0.0-canary.15e81fe98.0","@material/ripple":"=8.0.0-canary.15e81fe98.0","@material/rtl":"=8.0.0-canary.15e81fe98.0","@material/theme":"=8.0.0-canary.15e81fe98.0","@material/typography":"=8.0.0-canary.15e81fe98.0"},"publishConfig":{"access":"public"},"gitHead":"8d83f2faa9e72fded29e88f843dec080efd318b5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8d83f2faa9e72fded29e88f843dec080efd318b5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.b3e53981.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-/7ND+mez7vdRme2SYc79c1+FOgLqZElgYKnTCPbhdzI128sPs0vgrXMq6CwglG0GqMcznf013Ca+V6Zy7PeArA==","shasum":"597090ec99c3abc67f80eb3655fc374e758f9408","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.b3e53981.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe8qDLCRA9TVsSAnZWagAAWMAP/jBCjYkYgIXeNRPPBg0w\nlTa0VGPbzjqUvi96zmSVzwwUE+akmA+Kjlg5uBijnXHyRLxg/jRvcZwFdqvn\nEbD/QEKuz5nH+PGyZ/07TpoC/42whbsxoDvXwBbxKsIDghIbLo8ysB0W7MtO\nQ7GMOoM1qiE1sVozvOefyx4r+FDoKPHK6lBxzRTlZfW98iYm9Vocc/wgtwlN\nMcAEB1JloElq0DbBbmwWrvzdJanSCsWfe1wGJc1uC+KH918SDjiKc3N4nGGP\nCTQ5ioW0KR15Yaai1dBfaB0qvuw0LRRHRJUF/jTeP2YGdzuk3R/hIV/Z+APA\nuYZL4M+JC8abQ3V8uSMC7ESVi3cT8ZXs5Jz7vtzn/pGu7t7rn+8DVToVgQd4\n1j7VPOUIwFlVo0VegS36noVHL2CioGDKV4OuD8CMhsKyPlLPDUVKinyH7btS\nSsBbVWhF7yiAnScRTassSI34agFCghk63yQ5Vrvgyc25RW8c+ZtY+iktEO7T\nVs5cKItV0X9FAn9QQPpzdiDtsyjGuTC71viNoMoVVoe7KSXZPoW7RdeefrEF\n+avuWjmTxBWVlsoVp54LDHzoufF89ykcrsSWdXCM1NvGWfUSsWM2z4JyAW/c\nCGIzPfPVirecvsYTJOnEYRaMhf3lvEVq/zO4YGrl6InVw5h5qAS4R13s2tIi\nouBM\r\n=EBUp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE17yIz795hY+weHFgHcn0teXJR+M2ppbuxsDUIxsQk2AiAHyV1r9su/NbvOKyX7tNjgSxBsmaC3EBfe6OUbXJk9SQ=="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.b3e53981.0_1592959178879_0.9381265480870415"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.b9468f77.0":{"name":"@material/mwc-list","version":"0.16.0-canary.b9468f77.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.599b8c319.0","@material/list":"=8.0.0-canary.599b8c319.0","@material/mwc-base":"0.16.0-canary.b9468f77.0","@material/mwc-checkbox":"0.16.0-canary.b9468f77.0","@material/mwc-radio":"0.16.0-canary.b9468f77.0","@material/mwc-ripple":"0.16.0-canary.b9468f77.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.599b8c319.0","@material/feature-targeting":"=8.0.0-canary.599b8c319.0","@material/ripple":"=8.0.0-canary.599b8c319.0","@material/rtl":"=8.0.0-canary.599b8c319.0","@material/theme":"=8.0.0-canary.599b8c319.0","@material/typography":"=8.0.0-canary.599b8c319.0"},"publishConfig":{"access":"public"},"gitHead":"89bea892912be98e07d72fec0e142b11d1874487","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/89bea892912be98e07d72fec0e142b11d1874487/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.b9468f77.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-3nhmLBEkb52IJ6T0AR9NLQzxnWpqKpGLksRR89/BanHFSBf7thRYJu2HInbDNYfY8wT5emUDJcSm8/f/PiAwmA==","shasum":"ef9ee2a02553d997bb245fb40494215a20827238","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.b9468f77.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe88umCRA9TVsSAnZWagAA32UP/0ooDyyqNgLekOmksI2D\naTaIozHTGDIVS5J2ceCVgkSp4S+W+7FrxzD9B76avsyxeReGMRvgFi09E7Zg\nlsm4noDJ5H/MwNAdnp1s4FiOwbrMEtDDgLzFp0Ou18XdIFKt0rp7zJxwHnqT\nlWuELIaF0eySGLhCPtd0Tj2FJvxnPgUZlFMAwthIrM9CaT+/wUtu3to23tkq\nqbfZICwsU1pTvHXaNF3E+QGRFLsHGHX9ssJcOa5Bhylv3zXubQkiIouRZpF7\nDe9v+qjLW04Fu/cYOPVddkJOvrk8r3py0l4/P6dl/D1xbERiJbFN88WPua2u\nIwXym/a6l41jljhOseJSxZAUyRFupGp+xEBiEmYlt4A/f2ktJBXWCALaZFk4\nUJpvUIf5aZ9wPZR5X+3rVX8Q7wJyzfIkFRwyni+VEcCmhiUuyr1y5La3MKET\nXdiv6h++ivXY1IZtKKiqzhTMTmzaA67zIoKYXQCydTaoE3qgQwCSp+wqckZx\nmjoMYxSxlfrRonHfdSmTx9oYFMWYUnYQN19VrpTBq/TIZx/L67LisCP+mzJU\no2Dj6rX6t0WPseUfsRUzwTYN0mGn2p6w0LAGOn8kfD79LTlQoolAxUDS4cl3\npkB+/0OZZwjAdElLMxhxCqmeDB3vDBci+ojVUZuxGqQ7nctaTysAvfUt8i2b\nL1OB\r\n=T+Li\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCn7awLZqBTy/sTcWdnuLKvcWveSknPcMHLBD8VBK6uqwIhAK6TiTHl5+f/rZkjpdzGf3q8IHBT2yLZShWEb4cvg1IL"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.b9468f77.0_1593035685645_0.6397870903571021"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.eb790e49.0":{"name":"@material/mwc-list","version":"0.16.0-canary.eb790e49.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.599b8c319.0","@material/list":"=8.0.0-canary.599b8c319.0","@material/mwc-base":"0.16.0-canary.eb790e49.0","@material/mwc-checkbox":"0.16.0-canary.eb790e49.0","@material/mwc-radio":"0.16.0-canary.eb790e49.0","@material/mwc-ripple":"0.16.0-canary.eb790e49.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.599b8c319.0","@material/feature-targeting":"=8.0.0-canary.599b8c319.0","@material/ripple":"=8.0.0-canary.599b8c319.0","@material/rtl":"=8.0.0-canary.599b8c319.0","@material/theme":"=8.0.0-canary.599b8c319.0","@material/typography":"=8.0.0-canary.599b8c319.0"},"publishConfig":{"access":"public"},"gitHead":"722b9fe701d60a27c2554032e63a2a7579ed4306","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/722b9fe701d60a27c2554032e63a2a7579ed4306/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.eb790e49.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-9xROYJcPN2WyZ4aF7Q+u94FlQOAzpas2balGUKTjTMDCvNAW9u5tp/blk9rto9B8e4Uo4aym5e5g1pLHHC+F3g==","shasum":"468a8dadb6d8721661435c4acada484cf1e65430","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.eb790e49.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9RTUCRA9TVsSAnZWagAA77UP/0cTqUTTOat6k7vSxDkk\nIuGLonwz1jTxz9d9XuugdilNyS2Za4PUFsC0VJzQwN6LpdbcHZcExav6wI1U\noIPQFCLEfHeCwwJDR94VipcH3dOypNyRcDzTXwR/4KFiA3lESf+BZ0hB9EnL\nl4USoyt3iuwR1z7SoFup2vNqOQCYIfMI6wt7zBpUM/2Y4+Mg4eMSIQpQjETG\ndRsMs2uz/v0EVeY5teuYcDtk6E/034pOcx0X1uWCqaZpuKLw4cy1Dq8yU7fn\nMWO9gbqk9cWKV6truXzSwe2Mvf6lm+/gHM96W/YmQCKocKlYhRY/BWrBlDF+\n+KZnnPSebjeA7NKlgDjg6NBcGSOggCwKS3wM6P9/Kl7r71p/Hf5psUI7uhMY\nhBqOVroMT39OOwyJEANzF/5diII9oNA6rqJSpuV5wFrBXfroo0ptgvYWQVRg\n2G42XwW0q2wr3cX10FkkuJI7pF+Cp2cxQh/vE47Fd/PI5ky2K8zG2YwiZftS\nzbyygDCE1FQzfGWfq404etPDDlNpY9NOGUIa7fiophdRf9XXki3ILpVF2oY2\nDfo9FZPANwGsvkQK5xNrfpcUje/YXH1+xrtB8X7wXw/3gOR8rUVR5qxdMH8y\nQ9nxXsSZDnWOfwvVKZmKABxSfl1jfs5QLMvd+5xGJyZnxQcJFwI00zBryLxo\nuuEN\r\n=Lvq0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAuIpKBpvjWU6n40eBj4qcGAaq/OAebZzaThjt8thcHKAiEApdC3zSPE4OUeVJHeBJtnuL1ziO94cyWAmzlvkB6sagY="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.eb790e49.0_1593119955983_0.9240193281996436"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.9aa1a5c5.0":{"name":"@material/mwc-list","version":"0.16.0-canary.9aa1a5c5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.38197b443.0","@material/list":"=8.0.0-canary.38197b443.0","@material/mwc-base":"0.16.0-canary.9aa1a5c5.0","@material/mwc-checkbox":"0.16.0-canary.9aa1a5c5.0","@material/mwc-radio":"0.16.0-canary.9aa1a5c5.0","@material/mwc-ripple":"0.16.0-canary.9aa1a5c5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.38197b443.0","@material/feature-targeting":"=8.0.0-canary.38197b443.0","@material/ripple":"=8.0.0-canary.38197b443.0","@material/rtl":"=8.0.0-canary.38197b443.0","@material/theme":"=8.0.0-canary.38197b443.0","@material/typography":"=8.0.0-canary.38197b443.0"},"publishConfig":{"access":"public"},"gitHead":"04b200e2b2832855ef5eca7e2000672e53739c05","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/04b200e2b2832855ef5eca7e2000672e53739c05/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.9aa1a5c5.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-i6x/CW7v9CkixGHE1dsrZVJiEMnNP+zKpioS/DIGyWRvHJByJfdcoVWdZmVpTbYtrV2LAL5fuum41AzzBRk4/w==","shasum":"51bb74b200f899c1d770cbca296a9fd68924e680","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.9aa1a5c5.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9iriCRA9TVsSAnZWagAAX1AP/2x5EdVkihuRTO0BjE4y\ns9FLIrEVIS4uuRpDxmar595M6LVGTi3eOgiusdcEzzgoZ8JdbMdqxND4pE7e\n1lBYVrMu7st9U4GtbNSMwNxdx4do9jjZob21ISapjBp9A6Cb6THO0hBkZOoF\n28hYWpQxI1tAbvmia3sdfHBSVYiHSxIgJBZq+WQtOXwI8R9kpUtz03d3j859\nnaT46dhZNzQRICLsFWgzwvtMefdOefF9OQp9r6QqQ4yqlL1Cbrfq/X9zZee2\nFS6RimBPEs7VnSuRlDhFGMnsjOtDDHoZvp/jA2gmyQUEaFSwxU0K3Yt87LfF\n7F1k7x1XW+AS3dC7MkqBuyiciDwz+7ubDouX7iBo5LpY1e7lzDbfmtJgfRbj\ngy34RVM8VtOEi+3Dd1wr0u7v2gBPuscurq18v5F9FUkEKMI/Eufh/5oj600y\n3jNRZ6l67oBTcpfhnaRGc+LxUDtoBbFdHR3ToIfGJO3I8/taSfJI6eRTTb4N\nvWOZ1lJGyqaoBd9esudwz394YOstxp2tVGWB9+LBJIqXmszN7fIH2jv1jhyS\njY7RMFLWAtIPSe5+rQ+a2FBqIVDgbR1QoNf3FyHIBL8gY4qIjSAWFxcVxqpP\n0Klmao7TNdqUiL//k4UOylkTpDxcUcAyEBPuOAOnQ3yD/UGKsKKdrKtbd/rN\nfV0q\r\n=fuda\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIElzxuQcDzuAp+LjXB3qO6JfUrJhQZ2hfIYCrjxVtRHHAiEAv0jt/782rC6kwCnIO4N4LGYf1Cf/U+4Azl9c793XWis="}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.9aa1a5c5.0_1593191137498_0.699886701135545"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.d36e9861.0":{"name":"@material/mwc-list","version":"0.16.0-canary.d36e9861.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.38197b443.0","@material/list":"=8.0.0-canary.38197b443.0","@material/mwc-base":"0.16.0-canary.d36e9861.0","@material/mwc-checkbox":"0.16.0-canary.d36e9861.0","@material/mwc-radio":"0.16.0-canary.d36e9861.0","@material/mwc-ripple":"0.16.0-canary.d36e9861.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.38197b443.0","@material/feature-targeting":"=8.0.0-canary.38197b443.0","@material/ripple":"=8.0.0-canary.38197b443.0","@material/rtl":"=8.0.0-canary.38197b443.0","@material/theme":"=8.0.0-canary.38197b443.0","@material/typography":"=8.0.0-canary.38197b443.0"},"publishConfig":{"access":"public"},"gitHead":"06dd7e826645eff53f5923422d6024010828a4b8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/06dd7e826645eff53f5923422d6024010828a4b8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.d36e9861.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-0kiFApq6B9KPCcAdZAolqNcOnKVnbwfXe9YEsmItzSzrh8gVLFFUqKvVhxhOHpDq8rbNrV2oycdc2znlr4EAGg==","shasum":"68932b7f9024ddbf0cb8fb60834259a13f8c3fa4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.d36e9861.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9jIqCRA9TVsSAnZWagAAdvYP/RlzqKt3O6hT26MkWGjF\nZ74PTmfd+/sSvt9crastGa/4NIqtbPDeOl4kTKAFdOWwQ11yyEjo+6tjFoL6\n7L8D3Thtc4n43IjKfC95sOUvbE+vsU7c68X/e10isB+cZo7KU3fgdMy0AKiM\nV2G23s8wRBz2C2ggYUDr+ZSRt6gkxBPrgibn6B0/v+I2nDg09DZdTdz90EOW\nXhNlH+oERCBCnuNMhL+aNPJu/gu5xj6/tm2TILLkAZaEXYxRB3Q/FkeYGWxu\nn68Tpd2PWTMj33XGHgPazhIfMSjBb2dOZC6LT/UEbKmRA5Svdzq+gia68FAO\nBAnJlplb8QCHgvSP9CCSVjOimU+46v+6d8vQlH4Non6ZyizcmCke+SSyoUgP\nT+UHEz/eckzWODxNQAPy1tuYANJLgmRJoYmosQdufQXaGNFxa+fv5CXjRkKj\nxbfle4XBflEyht8ax3D/3qN11QVGP4NIe6UVuRbSxTNS9tjL25zL4/OUErex\nYqzCu7RsLo543Kq5xKaqzOfhZw1fM6/7s62I+z2QnLoqFrEjHIb7Ru60/+cW\nIv6C8M4L79aktF4FE767c2WoBgqnILngDxW9elNXC27JMAyUhf6f66gpc6Fg\np/zr45eK62nTW02mOjybsafxurNfGXHbVSGsNR2Rsez2i3VzuHd/VEKcfERE\n6q6f\r\n=iNnR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC88LXBMcrcG3a5dSsFMRv0QVRPkr5qQt0Od819dDRNOwIhAKqH2PBpOtO0IxihI3Hzw3CzOBI+CryQFFoKi49Jjj9x"}]},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.d36e9861.0_1593193001766_0.13581536094997348"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.155c2f85.0":{"name":"@material/mwc-list","version":"0.16.0-canary.155c2f85.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.df7154fb3.0","@material/list":"=8.0.0-canary.df7154fb3.0","@material/mwc-base":"0.16.0-canary.155c2f85.0","@material/mwc-checkbox":"0.16.0-canary.155c2f85.0","@material/mwc-radio":"0.16.0-canary.155c2f85.0","@material/mwc-ripple":"0.16.0-canary.155c2f85.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.df7154fb3.0","@material/feature-targeting":"=8.0.0-canary.df7154fb3.0","@material/ripple":"=8.0.0-canary.df7154fb3.0","@material/rtl":"=8.0.0-canary.df7154fb3.0","@material/theme":"=8.0.0-canary.df7154fb3.0","@material/typography":"=8.0.0-canary.df7154fb3.0"},"publishConfig":{"access":"public"},"gitHead":"28a52966d069b05ddf3f845738ff3207532f05b7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28a52966d069b05ddf3f845738ff3207532f05b7/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.155c2f85.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-O8RJ+TmkE9p2wdpZrYMAFBdpksjKp/a2bcT77e/2OJngT310wtxcT5GsR0MIpZnSifwBRseKdS99IiNkLEW4tQ==","shasum":"84a6330d19f2ceaadf61ac06cca4408a0e0093a4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.155c2f85.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9oUWCRA9TVsSAnZWagAAmUgP/2BBeRYATneTUQu9wcme\nG/3VXySnQ1gmNMDdd9XlHQDCzNclCHGQASajqXZY0iyYEUuLa2U0kbHZlwUr\nwM6BQu2hvyodKY9qed+qXKkXeR/DMioRLZyF752VjvPQRHtYvO9kK28TZrPe\nuYOL4UkuquWZxGyGuyYpV/Npc5XSo5BJJP3DETPXImXFfxgiTOJPXxg6+w76\n793K7RxM9gAUKNcQIzlHrhRHdClcV46q2uCG8AOtN5Kc3jbNYxsb6lUieypV\nm9WMTVtJ8Hh96F6wfUM//mGhjYyYPYMLxqmQPx2DcSVhOslMLl06Lxm0wn+P\nWK4SkVB8/Y5l0wrliBIpglniLIC/HQd99Zqw4/t52XPSc0kLTXthDDhF8aqW\nJ9jb6OSfB0w8+gdNHu1ohEgN3iGkNOmwfOAaSxdKz8fFOVsUxe04qSdfxqHQ\n6PtOihTw9aaSJgVvPcYeVbKNKwg8neu9wbTy0WbTLAwrij+foAgUs1LPPbpc\nBe5g+zCibTdCbZz7M3VN/EczYvp7nS4Qpmr5B2u9HhrsPDDkfPBq5fzIaEYo\nqhzaYNdepLalCT9cxP/xupTH0lbD6tuID+57XjW+EmjAxmLUVEAkGyeh2AEY\neVeSJ0WzBuPKcF82ZZGRBkekixIFDbXMd7b4Om5DNYmkoCrvRZT+cHTV+Ef9\noKpl\r\n=JoES\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9BOWs5j7VyYzy36wvDdWnB4guUCCoX+LIa0LOrQQk7AIgCgMFV/30mumJaNCtqpjbEbEH/eJ6zmhIrdEEW21oiPY="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.155c2f85.0_1593214230087_0.4626017339151731"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.340c9c40.0":{"name":"@material/mwc-list","version":"0.16.0-canary.340c9c40.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.df7154fb3.0","@material/list":"=8.0.0-canary.df7154fb3.0","@material/mwc-base":"0.16.0-canary.340c9c40.0","@material/mwc-checkbox":"0.16.0-canary.340c9c40.0","@material/mwc-radio":"0.16.0-canary.340c9c40.0","@material/mwc-ripple":"0.16.0-canary.340c9c40.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.df7154fb3.0","@material/feature-targeting":"=8.0.0-canary.df7154fb3.0","@material/ripple":"=8.0.0-canary.df7154fb3.0","@material/rtl":"=8.0.0-canary.df7154fb3.0","@material/theme":"=8.0.0-canary.df7154fb3.0","@material/typography":"=8.0.0-canary.df7154fb3.0"},"publishConfig":{"access":"public"},"gitHead":"b65b8e518436cb4bcd2fd8c59ae2898f2715462e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b65b8e518436cb4bcd2fd8c59ae2898f2715462e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.340c9c40.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-uknd/mYyCLk1hbRDt9yU4Oq1AcAx14wBEvXFMx5YfeZzV//q5ybpVVQEaukSID04GptndjMoMSkP/ew/L95A3Q==","shasum":"87dd58fb68fe7ecc8f1e68440789c0f9f3ab23b4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.340c9c40.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe9ob+CRA9TVsSAnZWagAAjYYP/A7X9UZEUQMDEqDH8uO4\ntPOVGWy1oTQi3J7PLyfwa2eK99/J9NXmG2LWAoqzTccbML+bUlOIRBZIY8vw\nCCqUMif9cw+4OkbfNJdexpgDOcWJdxo4Ktdg4m3eJ6mXttXR4aioeTKLTm0q\nhZkL8cRzh9sFZ75w967ebE0TZrdEwvHCgYGmNDFM6lAEw1J45lYI9hgUa/La\n7I//0dUV7HszNdnM8x2QBeogCySMtYJGx5aaKYAWHrEhrk+IPaBBw0BvWtND\nodMBR83HS1YiRRGXJul2pvQB42li1ybvSzPE1H6keAj/zPHnwk9wiumA+BhT\necW13czsUqv5U5qsVkYoLL2/S/qtQ5OWkHplbtAlB9j+DruKgkLnXhq3UVNI\nkqq8Jc0g9wFK2eOQdCgE6sw/DL/bzrNbzdMGLAGUSXic+a51g2YUINTTPmQ/\nXYEcB5Vt0UeM8Tuk84gek7oF65x0iDODesHKhiQWL56natLnDVq4v/dw65Vi\nPqfBDhi/Biif+QYAvQZxLe2WqSgjOTg5ZMgPWqFRApQseqrO+WoKlqK2fvTX\nsByUOe1cn3TmpRCi6Ne4rSGKqUa88xD7WBIrib2vIHATSGBlmUxzH9RYRzZM\n5VeGED1g61/ntiOecP84gqmlH8eg7D/ihnhYcdZsfGlYi3EbGEpJWf4JQpMG\nEY/a\r\n=7aTC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDWW6BddsL2Rc8conrDo96E76h1kL8v4GsUzAlxvVDvPgIhAPQQRnfTCDqElVAbPanJ5LPF6le5csuQYp22urS5Yk3q"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.340c9c40.0_1593214718144_0.07291212118286783"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.0-canary.a3384d2d.0":{"name":"@material/mwc-list","version":"0.16.0-canary.a3384d2d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.c678a9d34.0","@material/list":"=8.0.0-canary.c678a9d34.0","@material/mwc-base":"0.16.0-canary.a3384d2d.0","@material/mwc-checkbox":"0.16.0-canary.a3384d2d.0","@material/mwc-radio":"0.16.0-canary.a3384d2d.0","@material/mwc-ripple":"0.16.0-canary.a3384d2d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.c678a9d34.0","@material/feature-targeting":"=8.0.0-canary.c678a9d34.0","@material/ripple":"=8.0.0-canary.c678a9d34.0","@material/rtl":"=8.0.0-canary.c678a9d34.0","@material/theme":"=8.0.0-canary.c678a9d34.0","@material/typography":"=8.0.0-canary.c678a9d34.0"},"publishConfig":{"access":"public"},"gitHead":"e09d50d940709441416a3ec78b0600a867285980","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e09d50d940709441416a3ec78b0600a867285980/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.16.0-canary.a3384d2d.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-NrzMpjZX85YTQ5TX8H3v85ZZLS7HGy9rSqBW18Fpzf58sxQZmF/9WSDdgZAgzD4Zz/SYN2lSBMZbOJJadGQr/Q==","shasum":"eb6efe26fa82e53c18a5b5c10ba10da9fe7ce2cc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.0-canary.a3384d2d.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+6gACRA9TVsSAnZWagAAPxYP/3oRnHKHUsaWSulXkYxn\nNPj8LXToQOJIA5YJgyFSxfTKHO13ZDN+rmDckFr5Hi+6hJkvZYbWw1jXdssK\nQ5sn8yCUP934JrbXMf8CqTWUiNd7AkCewNZ375wBOJ2yypkiKFbHGmp7/st9\nXVqrSGRYfEFtC0QKwQjklQ+P4cWknWiVMLfpHBLIUNOo2BV+sBv6Rqh/u83O\ni0mCyhp4Rsx7h6eTaiONaOKeskStW+rAOs9sGDaFv+pQpdvYhvUhOzsO5Gnu\nuvnyudJwN39hCsKY/nxIzK3cTDqBny5TtJP6tC7WrxRJ0JGeL4uFHS8tFjAm\nYbsTDRDJshaLoEIKRMyJhX/0vElI3H7rS6CnMKJdtJsk1OEX1B+b1zn8AP7q\n8Hje+A/ctf7gv8ZY3Xr/B2UxL9e0zmMNQ1RraLPJY+VBFazsVL4NOxMDj1F6\n20I5azCOa+jnp2/1juSU9bRZA4iX/sKrwa+sqpU5CIZVbu6YgcOqJXmjljB+\nRb7nK8M5+LkCXoFGIupA9fNSLHIVm/+XsK4onbD1vZlbc1FoYP8YCzPPI0c1\nqqd0u1jRxRk8d9WSF74DmxOAxqiAnhxu7S50UeDxSI5II1101Mw7AqBK4JfD\n3k9MyFom1GmC4RrkeheyFgC9FEYKfquKH74TfohjhthYhD9HENdaKhz524nu\nNEy+\r\n=d/Y6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBu+goKuf/9ET3p9MFKpZorZvOdjmlyoxAqm2VeRQOEgIge1iNhrtEPwJT0sKPnzJ2WNLGMTHErQdDs7tt/q6YpeI="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.0-canary.a3384d2d.0_1593550847709_0.6738301453925732"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.17.0-canary.6d056c96.0":{"name":"@material/mwc-list","version":"0.17.0-canary.6d056c96.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.c678a9d34.0","@material/list":"=8.0.0-canary.c678a9d34.0","@material/mwc-base":"0.17.0-canary.6d056c96.0","@material/mwc-checkbox":"0.17.0-canary.6d056c96.0","@material/mwc-radio":"0.17.0-canary.6d056c96.0","@material/mwc-ripple":"0.17.0-canary.6d056c96.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.c678a9d34.0","@material/feature-targeting":"=8.0.0-canary.c678a9d34.0","@material/ripple":"=8.0.0-canary.c678a9d34.0","@material/rtl":"=8.0.0-canary.c678a9d34.0","@material/theme":"=8.0.0-canary.c678a9d34.0","@material/typography":"=8.0.0-canary.c678a9d34.0"},"publishConfig":{"access":"public"},"gitHead":"a0abcad0ecc43697e7c489d2c4ddebb257cae5e8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a0abcad0ecc43697e7c489d2c4ddebb257cae5e8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.17.0-canary.6d056c96.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-IYbUeEJL0SVxvLU7n4xmCJIHCduajW6blUUT/UVbNieoVSBAaMwFZMoOUKruT+RN4wTdeInx/Y+YR0GZHay9/A==","shasum":"ae0146e91da4d2c224cc34424596226d9866d51b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.17.0-canary.6d056c96.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+6owCRA9TVsSAnZWagAAgu4QAJKm4aHgnskoySJHD1Q4\nYzd2EJNK7IZB3/vwO1/RX2Jp3VlYMTsWoCy/urHvGSb7lpX8Jpa45uc2/Dba\neqkHtdMEq/QjNVsCEYAWweNAIIjd0w8EDeBg+xPJpV4hWHyMXi6HHnMCMOIX\ni0Wq9hBidXqbFiYl0Xw3YrFklhPOiZwDQNvToLnAzJm+0S+xw10t8fZBDMPk\n6Ty1GAoF6hSdSDEYivah2GMdISM6sf/6gkIn3A1zpw1WOhk2lpVxaD636BTg\npgGR1bLS3EtgIKvdKS6qx64wJ7HSPZ60X0cbtcfdNY8dWq0ITgHYFOF7NKj/\nVVhEkgIYhsFfv/iyS+q7baOPR6mDqfBdgSsNk7NwQKV8jOgcDtFmzNTiAcit\nViXLL1DdwT7zcwhJljrK8+l/XbjpuVnGgbWkv/900Z8ry7OM/OPek4u3bOTG\nLIzxoNTAUE+9Nk1GRNxHZmR4n8XwjvSO77Or+zsHtCK6rKLod7IpoOlcawKo\n8f/ofwD5Y3Y1WivpIEPsXWplU6iwY7gI5YLfneh5lgvOhgcJWXsPFKpOk1kd\nv6dyoOW+mz8dmx0LMSXBZi9+r4kqZ0Ttr0wiNU6w6TgQ+W6CcFd2LOcxztcs\nKtKwSrV3a7HVIow3hb+hSJjWHx17WGkZ2KSITtwRfe8o1mWUsVWZJvMWkLeD\nkIpQ\r\n=kQa7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD9NRPdB17QuSor941+WA2U4XhP3AkE/hvKxA+odzzaDwIgfRMgZEbaCcWi3ofBmrXzGcKfFltasOKJycQdd21V9eE="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.17.0-canary.6d056c96.0_1593551408337_0.1153654912398312"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.16.1":{"name":"@material/mwc-list","version":"0.16.1","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.c678a9d34.0","@material/list":"=8.0.0-canary.c678a9d34.0","@material/mwc-base":"^0.16.1","@material/mwc-checkbox":"^0.16.1","@material/mwc-radio":"^0.16.1","@material/mwc-ripple":"^0.16.1","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.c678a9d34.0","@material/feature-targeting":"=8.0.0-canary.c678a9d34.0","@material/ripple":"=8.0.0-canary.c678a9d34.0","@material/rtl":"=8.0.0-canary.c678a9d34.0","@material/theme":"=8.0.0-canary.c678a9d34.0","@material/typography":"=8.0.0-canary.c678a9d34.0"},"publishConfig":{"access":"public"},"gitHead":"3b47995b0b098b9e7dfcc7b735eb23e892cbffcd","_id":"@material/mwc-list@0.16.1","_nodeVersion":"13.8.0","_npmVersion":"lerna/3.20.2/node@v13.8.0+x64 (darwin)","dist":{"integrity":"sha512-PevtjMOwYz8xCq3+hzXjR4X1/BUBt9a9UG5z5cW9m4frou37b3dLu3y8z1VNlS9nVVQwW0IjG3meuVV1ia61sg==","shasum":"21eba17f46954033e4bd2b9897410c07b40ef747","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.16.1.tgz","fileCount":80,"unpackedSize":925729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+6tUCRA9TVsSAnZWagAA11oP/19fR4EtYHCNiDf6VCD9\n1FqBuKUH6ZESxdkOzFT/QEqzAn2nS81dIF9X88h/fQxXSo0/YZRfGezQvwGM\nsCBxoyHA3ivxI89t05DZL40tLCm6DYA4pc1DRA1ATrjh/z76azAn1pbQkeWH\n6pEoBh70A9bRoBePCJVXf80uL1g3M6q32Uq94OeBRwqviSpLEDMbzjxQH4V9\nTOLLnXgyNBw5BZOdlt26Ipu19xUP1QR3rixhE5QGSkPXvXCK7Vf609pl2mU0\nqhUxZW+8sUawRb1vpdlC4epnJlAyym9adizQl0hNg3R5gGy68hJb9Nro6zYe\nfCpVhbdUNEDH6ywdLopcPqQuW4csU7/jupda1V6B6xp3AJMmM87Ywh0D7T5z\n7Xr5BFJ/o5wbMum5Zzo4ZHrMEdKKJmaF+4umUxMexXBK2S2UwXbz2sGjIp94\nsaW0owivEFWgQfRnWWJUrdWZSSnPH3TZXp6TzpeXXLoKNwwR40EEdaRxC3j0\nlpNa+h02Vuw46KUm3tFYXwdO/Y+KP+ph87XIeG9mHMomF4rbFBSRACeuPZYl\nXP63zq6ppWJ+RFAglKFMTSy2oaBapSIShIsvlHmn+gL6YrmYFDKSo2HiTnlU\nv8EqMPv3c+ZqJPelGMG9c2XbPr8lF7KqHZJZbgIzGqpXxau6nFgfKYDt/VTK\npJlb\r\n=UFbR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpxC/viHxp6gqQCtVuPQH0ka2kjxv+JfUoKudap6aTWgIhAMesvXjAiLcrWxGyXXZDYCJ7bWCalcpHR3HxEbLkoFQ0"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.16.1_1593551700515_0.5920018885330847"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.17.0-canary.f7e37607.0":{"name":"@material/mwc-list","version":"0.17.0-canary.f7e37607.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.c678a9d34.0","@material/list":"=8.0.0-canary.c678a9d34.0","@material/mwc-base":"0.17.0-canary.f7e37607.0","@material/mwc-checkbox":"0.17.0-canary.f7e37607.0","@material/mwc-radio":"0.17.0-canary.f7e37607.0","@material/mwc-ripple":"0.17.0-canary.f7e37607.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.c678a9d34.0","@material/feature-targeting":"=8.0.0-canary.c678a9d34.0","@material/ripple":"=8.0.0-canary.c678a9d34.0","@material/rtl":"=8.0.0-canary.c678a9d34.0","@material/theme":"=8.0.0-canary.c678a9d34.0","@material/typography":"=8.0.0-canary.c678a9d34.0"},"publishConfig":{"access":"public"},"gitHead":"898d9ba1603fc85a0dd4f96b0dca134bf20f6b37","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/898d9ba1603fc85a0dd4f96b0dca134bf20f6b37/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.17.0-canary.f7e37607.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-JmkrBm+XBQtRIrAtQXbzv8C00Xmg7L14J1VLukyihmLMb+8XXIqRvtsX0RbwPBF/YE7N2hBUjwM9NKJBv5m7nw==","shasum":"f910db974817228a1af89854daf1550ae4434f35","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.17.0-canary.f7e37607.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe+7I+CRA9TVsSAnZWagAAumIP/jCcDnD1v4YX0QLDa5aJ\nNXze9ulGRRJyi7mVXct9AwObpTvI0Hu08xbXcQt5iGzrE5VWLJMX4F6gxq93\nbFRyBudZ7SkYM9XlJqzef+Qb3zw6koM5TsaSZw0LSbKIK9kCIIpN/aRrC5Ju\nkO5F77X8vOvHi9QlXVbu1dDzl3zB0EOamijCZlB2pdAhpdOiw3gdQQgBcEFC\ns27+Q6cLSnwZui0uV6FHs1GPfCwx7khaM/JOLEurhysKZ16jGSJgZMFXvQkl\nki5hndV17u9CUN7TPw8AaG/xzRsyHFTvOP5rsQJ4p9/ULnw34xocB4Sec8W4\nJ56sUNgqndOe3jvr4McWS3zLfJL8gBQvxgTRF1teyW9StE53ZK9zk59nbt8r\nl2WPrzTaW3FZjWarxNrcPSik1J9DcFge2pQWXhXVT/veMLnIXbmKIo5m4/6I\nlfmVOuu6jE29BRVT1ZP0KwsmJUbgF62EqTncLZpwKcARZaYz60rYn4DH+llD\nBlwVleMdtm1pYKjVCJdLBgpi/ZV8w9WJSD7Speh113106V1auVh1sSkxyUwd\nrkSC144lOE4kAqLJXZssbPesAnrsAkVfwhnrkXPic+aVoK5nkZ2NcinHPlwq\nGrj7xixhI3+kdv5PLLrohufV+EaFWKdk6pi3D8t60/d/h5X072QaA1lpSPrG\nPh0B\r\n=v1OC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID6aznFFrisftwKf2ABJsX/pa3MOmMC7V9JXix74RBNNAiBxU/9jD2qB4wM+0LHYwlh9mezur44mA19ye5Uw/BDv7Q=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.17.0-canary.f7e37607.0_1593553470514_0.37552518128700063"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.17.0":{"name":"@material/mwc-list","version":"0.17.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.610c26c4a.0","@material/list":"=8.0.0-canary.610c26c4a.0","@material/mwc-base":"^0.17.0","@material/mwc-checkbox":"^0.17.0","@material/mwc-radio":"^0.17.0","@material/mwc-ripple":"^0.17.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.610c26c4a.0","@material/feature-targeting":"=8.0.0-canary.610c26c4a.0","@material/ripple":"=8.0.0-canary.610c26c4a.0","@material/rtl":"=8.0.0-canary.610c26c4a.0","@material/theme":"=8.0.0-canary.610c26c4a.0","@material/typography":"=8.0.0-canary.610c26c4a.0"},"publishConfig":{"access":"public"},"gitHead":"0afbfef219df4add1912c90b8608ac93135d876e","_id":"@material/mwc-list@0.17.0","_nodeVersion":"13.8.0","_npmVersion":"lerna/3.20.2/node@v13.8.0+x64 (darwin)","dist":{"integrity":"sha512-1vo7mT+yJPpO9OomiosR391ICJHHmWGY4WlCJK+blnXp0bc3rIkxVBMVaitGwDpRjrS6vttPwT7KQqJckPKxcQ==","shasum":"b11f5f23e23871f033a17885f667a25ad1e0614e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.17.0.tgz","fileCount":80,"unpackedSize":925729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/OedCRA9TVsSAnZWagAAzoMP/3KtG48hG8NgdBWswHNQ\nmutD2Z26eg3pd7NanetzN39q6lhWoz/2ICrizpRHFJhDXI2/dbqq/BIe1j51\ncbEP1Fut/NHrLFP/C8WOQ1l4q/FVZ26g8iaavdFvm36+jNu/Q+tweTwsoWcx\nHW5kemTxvLHcKZTCZiXdVYOVHTg+Vl9Gq0+yCYpt9OGXoCyDcN72hYaCzuU7\ntJlbGoOy41VCH9nnOzGVdjFZqjdpG6cMQ7SoJlKlObM/7D2nGHEvoNwAT6F8\nj2nYRQ/6pp1vZlvyZAI4KWhGEuRnW9DZnzS1YWPpGzNgTr1WkEbQJmDEsrbu\nnm4CRW0r3iRmX81+PKYKpqpP7WKp6qDFUFPd2yro7jNGfh/Bd1vE5ooaX5Zo\np2Y16MvNPWCC72hjNDUK45A6ja+83Z1tCMRESGjt6V/DNOENyOSPk4N8UtAX\nYalxwXle6LJHIehrJQ6ThjS9eGnpkFjH7BMzL+2CW+HI55vYmd0y0II34izV\nioT28FImCXTqIAD7ni5YLhg6yC/grFi0x0y1IVQoBAJoOGmf8zw0rujdfwvF\nJepcYMoDWE37FLC3u9GLsMsTPrLxH52ckjKPfsH35yKtUX7ngbmjtYc9Hzen\n78XDjotw2zf8kBWAvBT6ncFZgrjXOZ317cyJ2wF3zN7TGw03uneu34UGupzT\nHuWp\r\n=vEft\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdkf0XRFMlhd/m9ab3aEnF+K0+jryVvMrmCYJTt2BbbAIhAM+wBKfsTBoVVJH2Iuysxja7jOt8i45pfvYSY8KHw/XR"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.17.0_1593632668834_0.9894309361770557"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.0afbfef2.0":{"name":"@material/mwc-list","version":"0.18.0-canary.0afbfef2.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.610c26c4a.0","@material/list":"=8.0.0-canary.610c26c4a.0","@material/mwc-base":"0.18.0-canary.0afbfef2.0","@material/mwc-checkbox":"0.18.0-canary.0afbfef2.0","@material/mwc-radio":"0.18.0-canary.0afbfef2.0","@material/mwc-ripple":"0.18.0-canary.0afbfef2.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.610c26c4a.0","@material/feature-targeting":"=8.0.0-canary.610c26c4a.0","@material/ripple":"=8.0.0-canary.610c26c4a.0","@material/rtl":"=8.0.0-canary.610c26c4a.0","@material/theme":"=8.0.0-canary.610c26c4a.0","@material/typography":"=8.0.0-canary.610c26c4a.0"},"publishConfig":{"access":"public"},"gitHead":"22b3cf02901c0c438f1e4150ce9513d5f45f21d1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/22b3cf02901c0c438f1e4150ce9513d5f45f21d1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.0afbfef2.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-e0UUHVHEj9vXD/lEDzEmp8T26XKEU052+mYYaou1EpaQzkdDyhnVKgLPwStS/hOnfow+6VXOa+CEyJDYiW1V3A==","shasum":"82f3b067d36f0ed8368e57de7df5de5b6fdd3377","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.0afbfef2.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/Oe2CRA9TVsSAnZWagAAl7UP/0MoBV2rM4gEfyu6Qe3T\nqe8Ma14Vs6jILlLFrZ9asHAoNN56J+VQiHRVfScS6CQgX27PlKzCxXxWGc23\nfuuXvnR6PAMuQWisGO3x3TTR58B9ZDP3OYNSKMYmcbqTdCwGPvLnyuCgtlRV\nuRNYKWB/V19TKjwOkFffo5rZtYjWYVOkZqQiI9yS/QLgk20XWpA5jvN2XSJC\nGzkIqhJMV5T4WPClcjbEPaH2a+RKnHREzmMNoiFo5vQKD2E7Xhge97Yn/JlO\nPoYw0mfh4zgxpp0NC6/0PVkhFWSazX92kH9+E76fCPyiA190EnwngwOdbDhr\nrifm+iHYV4wcePm48bkGDxYjx4O1tcejE6ZpFWqkpJWpGIRn+Dj94WTH6XZG\nuhsmjRhu2VjjupdqOWChhnDJtznnH7nC6rPN9GVKaC1Ha7aR1JsWXUfoBtkj\nkU6GfQkBu2XRzbExm+5jB5ey1Z+7Daqca0V+f8CrIShGUrAvSJCccjw1u+KQ\nKsdbcfB9K1dh3sNoueuCnlXtPL1j7e8PrC+dXOtO+o256IEVMUYKq4YM4/Vf\nMIi5H6xTLf61Dy/FmeLDqUjujUiRyIOzLU6JdRtJyQzaiVPfPkS+d768Ms8g\n4iaiuFQYSnfKNjiXlyyx+UewdIOvf6PeWzYPoZbJJ0paW+EzVYtvMdTesOIq\nNlX8\r\n=bVTY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFtCOlnEnok7DQoE6u6S9LkA9SXtcLgsFlA1ZrULX5sQIgbdW3ZJ9j/lPcof75x4ymE/A6P9aAHAy7SZ42Npxg5vU="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.0afbfef2.0_1593632693904_0.39426137501545466"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.fd970958.0":{"name":"@material/mwc-list","version":"0.18.0-canary.fd970958.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a78ceb112.0","@material/list":"=8.0.0-canary.a78ceb112.0","@material/mwc-base":"0.18.0-canary.fd970958.0","@material/mwc-checkbox":"0.18.0-canary.fd970958.0","@material/mwc-radio":"0.18.0-canary.fd970958.0","@material/mwc-ripple":"0.18.0-canary.fd970958.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a78ceb112.0","@material/feature-targeting":"=8.0.0-canary.a78ceb112.0","@material/ripple":"=8.0.0-canary.a78ceb112.0","@material/rtl":"=8.0.0-canary.a78ceb112.0","@material/theme":"=8.0.0-canary.a78ceb112.0","@material/typography":"=8.0.0-canary.a78ceb112.0"},"publishConfig":{"access":"public"},"gitHead":"7dc6a8720f1d1adb0ed9ae03d2ee54b539251905","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7dc6a8720f1d1adb0ed9ae03d2ee54b539251905/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.fd970958.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-FmycoDJXuEzBS5UmJU9e+Q9JGvbmP24C8EvRBe+OGLFYjzi/6jGRThlFNgqlswnXNMWwrPFEPiVjopY/ZT06NQ==","shasum":"ef63a24f72cbc603b183007211b4a02a7b7a9046","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.fd970958.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/R1fCRA9TVsSAnZWagAAJHgP+wbwKIjY6s0d9KUa6iJC\nzNaNZuHMWrdCzEsVogjmN3tLZlpSX2fVTJN8sfmq6CNBHyZe0a71doRkzEd7\na76NzGXlFvwDcY61+uHEeM6DKSOEfEGPBJ0sdV+BiAJ9ZGP68ENqzhmy5ly2\nkwIhjkkfkyVUU+lllCafahM+eR6VUubxod9EtqPqrQvDtNYLkLXHD3abk5uW\nRyZ5TWMi8KvgXU+MFniaqCMhUSiXMLw1spSlfFdGyJ3k1d/6QQqHO3KzeiY/\nrtsSl/emuibi5diwSKV1tirfqmN68MhvmVV6MFLbLqZQOcKs597Tm7BbNDrJ\nM0F+czIiYj2Yi1DOQ+2LddJ4YMxYUz6N0pl6yZfLo2gGyI/mB9rOo2iJROmh\nmxxSZq7pM6dZ5hEOZ1B2KwQKsFiTmCfM0ls/j8TYfmy3KIUfIm2zUSFUZ6r8\nwuAhs9VR+Snk2Nq6DWD4yL/DMpPDWe+afuclWy3aQ1tr6uoHRgrP6m1Dv5Q+\n+oJn1S4D+M6dK+xOHaNsRi2AN5s3DWjgp+8mN2znoRSkoNT3SFkoZeXaAopp\nzr2cH+TWokAu9qgLqL1gZB63myJU1V5Q5NZRLM9R6RhB+I4w8IvQszfBJmzP\nRM82mScYPe1pt33BK948cs6Qxxm5XMh3YW4KO+U1syUlmzMzT6zhOkpuIKxM\n9ykD\r\n=r9qq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyogEQqrreKKh5/xkPGyE3IEKpg/skmnBenLGunoeQygIgYm2WlBUU0JK4PlVK9oRYR9P1+/fkTAeAwJPZVKc+boA="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.fd970958.0_1593646430563_0.991820221973599"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.fd44be19.0":{"name":"@material/mwc-list","version":"0.18.0-canary.fd44be19.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a78ceb112.0","@material/list":"=8.0.0-canary.a78ceb112.0","@material/mwc-base":"0.18.0-canary.fd44be19.0","@material/mwc-checkbox":"0.18.0-canary.fd44be19.0","@material/mwc-radio":"0.18.0-canary.fd44be19.0","@material/mwc-ripple":"0.18.0-canary.fd44be19.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a78ceb112.0","@material/feature-targeting":"=8.0.0-canary.a78ceb112.0","@material/ripple":"=8.0.0-canary.a78ceb112.0","@material/rtl":"=8.0.0-canary.a78ceb112.0","@material/theme":"=8.0.0-canary.a78ceb112.0","@material/typography":"=8.0.0-canary.a78ceb112.0"},"publishConfig":{"access":"public"},"gitHead":"19ed8b1c754f72137cfbe305df2c3a6be32c041a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/19ed8b1c754f72137cfbe305df2c3a6be32c041a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.fd44be19.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-/QVt/YNGsHuAj83muAUftNv09KcYxTtbDmZ/6tl1HmxMyRMvolPuVvALdDDHa1VxhI68QsupvKHxCtoHU2wtTQ==","shasum":"7842fed9ec8461c847150b34a41f01eafe94d171","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.fd44be19.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/XVFCRA9TVsSAnZWagAAwFsQAICCoJGtwoORVjNxgIbx\nhgx0Xy2PQT8CucXX9eapaTwvaVwETWIuN4Cc7fundPnulAu253AgfFSFCryA\nO5RRUyr125rQmnuY5tMKFW9YEQMgf1qSY4h3rCNghxWX9Ca8unOKomrRCe5A\nOSY4oiG/tJYZr3lilssL4gYBTgZBhoO7jQrX6I0wU2QyzzM4teHbeeJVA1hL\n+zI5Xxuf333pbH9T69kw9Fm7CsJ5iPbN/oeX1iUQim8mcgccGaL3FcH3a2U9\nN0NspA7jCfLUExeAKotS2wC+Kb+GT6Uw/jfZNLtHFjHWrJEWFTm7DunQBGkn\nixK77qZiOc13pw2wsPbzPMfImfVJnOAbUmLTkQIMVPaQsrBQnRy0MqoWbtHU\nWKh9nNbxyWd9JCoXkRdj9+21y1TmFFJtJAdNb19+zq49EN8kYpzncDfKRR3+\nm2GsyDjoFglUx+gylcMMSlIM39MNgtuflmAbwis3DpoKSbmFC/P9m/EI400P\nHk/r+a1spjIeWCW2IKP5fwB2PSXeFmmxbKWtvKTIp51o71+1Ccp4cF63WdtO\n9jnqlgNHR0Ny6DBUjOZBeStBm0ZHpzrbBV3lyuSVnKcaZQwq3aT4DXSc5Bv7\nIlNm2t+6tu16IXViUoPdP0NJSut0QoiKiCwqLrylyWbecIt0Pcg7bbF5M4Yw\nxG+T\r\n=i251\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGztfWXajYhgLWlgnwrrBEvlC3vtBudPz1BJ4egHmZfgIgcqscezvuYukpijvgf1ym+oGjICS9RYqm1BsrqrH+wJ4="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.fd44be19.0_1593668932936_0.7108898376238613"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.17.2":{"name":"@material/mwc-list","version":"0.17.2","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a78ceb112.0","@material/list":"=8.0.0-canary.a78ceb112.0","@material/mwc-base":"^0.17.2","@material/mwc-checkbox":"^0.17.2","@material/mwc-radio":"^0.17.2","@material/mwc-ripple":"^0.17.2","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a78ceb112.0","@material/feature-targeting":"=8.0.0-canary.a78ceb112.0","@material/ripple":"=8.0.0-canary.a78ceb112.0","@material/rtl":"=8.0.0-canary.a78ceb112.0","@material/theme":"=8.0.0-canary.a78ceb112.0","@material/typography":"=8.0.0-canary.a78ceb112.0"},"publishConfig":{"access":"public"},"gitHead":"ca6fc6de0c0461ca30684d96cbb98b8885c8cc6d","_id":"@material/mwc-list@0.17.2","_nodeVersion":"13.8.0","_npmVersion":"lerna/3.20.2/node@v13.8.0+x64 (darwin)","dist":{"integrity":"sha512-fKGJkfWntNUQxfRSM/G7Zsaq0SD8JsFi730BS7q8X3OlFhuOGGeMP7sY5FtBVX0hjAO1/khp9KKgmvZunUoXkg==","shasum":"f09fc4cf1a0ca03d097938c7bcc75682cec39eb3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.17.2.tgz","fileCount":80,"unpackedSize":925729,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/XeHCRA9TVsSAnZWagAAN1cP/3YOsw58FqnZGrNDXJYW\n3et1pqmXdYTjLLBN8cGJ0pb1+vi1cupIuxtYdnNZ0cAl7+E7Mh1ORy+IVoPP\nB3qzQym0zYnI6F+W7hYRYLZbWCG4hWLg3RW5VoLpnw0TEw2jvfljC15Z4jl9\n6mtQ+VXDN8fw9Kh+Z3G414XdxdVm2vdiJoeBejHDkbvgMbhT2+WODw8PBYwx\n0DqwP3Z+wHlDeM/LsEpA6I2oKEm5lEr2+uwXG9bkR+ZFckZqKHbiGQLWdhdV\ng0FOnUBhBY4bg1w99mJFM0MPKJ781smV50tDxEcw+j3goUOKLxBc4U8bT4mR\n4lGr3XEw1wiMfyEJ23N+lHZ9+qPUDjsHegFaCzjQRDujqwJPSIgPo/Rq2ceY\nNXCtIwOZPUJp2Qgjjkp+ad3c7LhxN5eq2OtEcGlJuHbBwtHITDsPnANS4obI\nBjXWaLdDYeLPAle3W45sf9HUlP8vcNZxc0MVJt/cQ+6J21v1uJayKZqN5+9v\nDBPHVsB8Dv2cuvNNw+SvTFbnXNL4pqdvv6IZv4N4xQcvAd3tI+J4tL8DiNUK\nBQRxS4eawBi/MS5Mzq66yIOHaBtAbJVZVvSu/e0keDsKD3ztzjXcE/hQPhaw\nCfG9cjE+NzN2Yqq4Pksht+OYR/RcibopA0M/rR5wts9XF1Kr5rRqKatPtih2\niVZN\r\n=5vEG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFL0G/j0lr8AwOl1+hICpwKWOTMmW4zaQuKyW4LG/yFkAiBfTeUoAIEkGJB3a39sQCRiUU2SdbxMfvchg0x4fAy3VQ=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.17.2_1593669510578_0.5067768448931727"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.ca6fc6de.0":{"name":"@material/mwc-list","version":"0.18.0-canary.ca6fc6de.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a78ceb112.0","@material/list":"=8.0.0-canary.a78ceb112.0","@material/mwc-base":"0.18.0-canary.ca6fc6de.0","@material/mwc-checkbox":"0.18.0-canary.ca6fc6de.0","@material/mwc-radio":"0.18.0-canary.ca6fc6de.0","@material/mwc-ripple":"0.18.0-canary.ca6fc6de.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a78ceb112.0","@material/feature-targeting":"=8.0.0-canary.a78ceb112.0","@material/ripple":"=8.0.0-canary.a78ceb112.0","@material/rtl":"=8.0.0-canary.a78ceb112.0","@material/theme":"=8.0.0-canary.a78ceb112.0","@material/typography":"=8.0.0-canary.a78ceb112.0"},"publishConfig":{"access":"public"},"gitHead":"ff7df8fd7df07e908061e32938ae550315d255d5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ff7df8fd7df07e908061e32938ae550315d255d5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.ca6fc6de.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-vvOxWx+Do5x/Xu+IbqXdtHf3tt8QcAa19erULVfUezV+6iqBBu+K8Odk7wYfLOf21OMPslFmEWaUz4gjk00KwQ==","shasum":"88a581a67dcaf5c7d31c2ea5c034324e20cd2514","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.ca6fc6de.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe/XfQCRA9TVsSAnZWagAAPysP/2lnnh+6KTCV4RdTCsNf\nXoj6lLJgHGRuI4Fu6L/3BsrloZICTMEmPkfsT1rox0RMrYrD/8iiw+U1YHpE\nkWSRFogfFmi0BztiPEAwrvanuhAk9SYTBT6jViU/ZeVdUNOtsY+Je6dAZoOm\nC0J7QrK2J/o/Rv2X8KDvY/mI4JzF2jf9bcK1Ppad6hKYCadzL2ORKcZdqQ4c\nuysbO9oI5/YurBJ+Ge1iTqysOQ1oUuyG0z6Ke5GnrTWOGwSux9CkihQisage\ne188YKY0T1MWz5JroLdusFIrwmMTwpgEUnbVsbAhrA7If2C3WNrA2txNi3Wg\nxcTGjVx6Sk7wNQTERt0X1E35Do/jNKMzodyUTpNmVP27OxTX5i6o3AROj6No\nrG0GD8bzgvN71Y8Q3vVco7EC9w64LBnia6+oxE4U1xzUw1TrRs9pYrLUZF85\nYhQy+AjmB4e2/xETk69DLTPXCYBgCVAZaI++qA00t3OTpFt4sr1MOJG/Y95f\n9m97jOTPWIAkV9XFagsqjbIsbIf9lyLW4Xx4SgqPbSQRmYWVPe4U8YsJJCkc\nqOBCYr3fzTb+LfvacitKOJw5GD6K1YqsDEUnD/sIXwmkVkVzbBt5vxsJa5nu\np/+5BlwBLVL+tX+qA8EA0wccld1qX3+HXmAsFFyqtazTiLrp8ld9SKxksF6V\nlPRO\r\n=xDWN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIByGW8UQ+ZP/6FuGzuaGzU/ZEyaTEYI/aADnoewhbZXUAiAx4DvWBW9IU7tttXS0GTK+zX+CXMjUHIM5NHmq/KfKwg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.ca6fc6de.0_1593669583913_0.7545565321794856"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.79f1ec2a.0":{"name":"@material/mwc-list","version":"0.18.0-canary.79f1ec2a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a78ceb112.0","@material/list":"=8.0.0-canary.a78ceb112.0","@material/mwc-base":"0.18.0-canary.79f1ec2a.0","@material/mwc-checkbox":"0.18.0-canary.79f1ec2a.0","@material/mwc-radio":"0.18.0-canary.79f1ec2a.0","@material/mwc-ripple":"0.18.0-canary.79f1ec2a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a78ceb112.0","@material/feature-targeting":"=8.0.0-canary.a78ceb112.0","@material/ripple":"=8.0.0-canary.a78ceb112.0","@material/rtl":"=8.0.0-canary.a78ceb112.0","@material/theme":"=8.0.0-canary.a78ceb112.0","@material/typography":"=8.0.0-canary.a78ceb112.0"},"publishConfig":{"access":"public"},"gitHead":"28823685e1aac950044fe1d868c6233ae753ba7c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/28823685e1aac950044fe1d868c6233ae753ba7c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.79f1ec2a.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-7H2iCYsxgu+OsLGMbwVRu/7y5W4DIXsubf+bgIQZKfUZzk1dKQtsCbzfS0SNq1UpwPkYuyYJj7uxduUaHC7rzg==","shasum":"2fc081c047347ec4771dfff696ad796436a5c064","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.79f1ec2a.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBLHMCRA9TVsSAnZWagAA8WQP/2RvTwXydmAUA6eLkNyU\nwMEjZc5Mi+8phr2wEGXNAYJUGxzdc9/3cXf90uuTEL/1aWukeVJJuN7sfNs6\nG7X5JEPj9x4PqRvoj0JtD6I1IEiZTMUdDcC6uie/KINWs6thDyYu5TUBAj5b\nlvJIBthnyOv/Sk5yq4/iPxBg/OwNlC5AdSEl48EWHe/fpfNOGJlrtn8xxuNQ\n4jCf4OzvzrnuhpLSZsTRD2a1RxvKLg3CytOPqzWZE3YRRYxetYCsl0bnDslQ\nyOx87bBJ4x69ZR6qj4vhgNVzBUDaaFgkY5NW5BsVdLUxN+YhmUoknftocTJU\nls6/GTvGdyY+XTwR/TRayOr5OXWTBicNZztSmWSPSE6I8U0dE2eq89qy/IkI\nQFQ/O4hvWBART0KqFsANkAN5vK2P/9NGqrtvYX9C0tUr6Ev6MKzIBWQVBE3l\nrCCfLKqFYVkXIb6BcpVQgLZVoy7bEKXIQ5I4OzwNmDspHeIBwNFIzXS++W+0\nUBb3JglsHLpVgHzI3jfEYQsExRy5WyfqG30pWMnbJHO/6iZLa7QL731fUs+x\nqJUJ+AF+R+bLR0Izr+1T8NjCU3uGaxlnnuGl0v83zugM3BZTcudJHstWScqS\n/dhltIPi1DUgQnkz+NAtz6zU2fXBEHra8NbwEmZlpWeRVlRCaAfEKRo7FAHg\ndVQu\r\n=KEyB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyLiTTRAtUx6CGCvNeH8WmWSZ5ojkLe75Qs98SslL/4gIgNNXW7DYJeGqKY+q1bLt8ocl6+hc4RoBAYUjEQhg4qY4="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.79f1ec2a.0_1594143180272_0.484726407419811"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.a7bc45ae.0":{"name":"@material/mwc-list","version":"0.18.0-canary.a7bc45ae.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.6ed717ddd.0","@material/list":"=8.0.0-canary.6ed717ddd.0","@material/mwc-base":"0.18.0-canary.a7bc45ae.0","@material/mwc-checkbox":"0.18.0-canary.a7bc45ae.0","@material/mwc-radio":"0.18.0-canary.a7bc45ae.0","@material/mwc-ripple":"0.18.0-canary.a7bc45ae.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.6ed717ddd.0","@material/feature-targeting":"=8.0.0-canary.6ed717ddd.0","@material/ripple":"=8.0.0-canary.6ed717ddd.0","@material/rtl":"=8.0.0-canary.6ed717ddd.0","@material/theme":"=8.0.0-canary.6ed717ddd.0","@material/typography":"=8.0.0-canary.6ed717ddd.0"},"publishConfig":{"access":"public"},"gitHead":"fe14f2ba9c3850967039fb923e6ca39978290d3b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/fe14f2ba9c3850967039fb923e6ca39978290d3b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.a7bc45ae.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-ZKSoVH2BmF24glVaLi4MUipe1+YgJFxlV677r0UtJOabGixCpeeVRxGGUI6wmXYngDZddKu9cAuOyQGxvDzCqw==","shasum":"3182c85fe15ba2045d8945cc6871a116dce56ee2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.a7bc45ae.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfB1KcCRA9TVsSAnZWagAA/5QP/29j7osni5qwjbJ+577K\nGi5HrRcFpV5M70jyfwknHTEjfFp0Ajh8MXF4pFC3p3y4Km8YvFvUvLomdSwg\nuOfU7J36gkPTTgEnGeOgGM4DCJRdGKe0UMZLRwJMuoT5RKsMI8EnoUd2LJ95\nu1kYfDUkR2NbTdaEnJ96e2X8AM2L1xgz9gwEm87YqwxoXEq2dI9Wq83A9l63\n4G7KZpTS686oUZgzQ+gAssA3On//RTTo8Whig/jYIT+xVYlodejiwOHt+wQh\nLdDHvvy7XfQfXULiId6/wgfvCRSvM+3YQis8dhXyrIxTgzIbrqUJb5Odl9r8\ntYp9h/h700vz+OYqCfQY0UlPnLy07syLptITzMoGh6oPf3aO2knaRFnoHaDq\nu2OXdRA+1ITgLb57bXEoFm1R51dgSQC750YHmvWjETWbdEtEJVoQh17ZWwFJ\nzn4CUXw1oHTIx92kmlPnOkCTQUXNr7dHzNeAjg87f2BRMPJWlC988vri81Cy\nQTLda3b02nTaLp2ed08E06nmwXxA72pfNnI58ZL1hTerzdHvgu3MhCBPxGuc\n8Fzw1piL7GDJmcXlHA17axFgJwZsjCGiY0FvWYt6CN23GgIcW1hhlxUHSB0b\nkrRUr9SmgmlN8KcFomODR4bZKlk9HamNNVe2f2vneA8B34NRXZmyLK4kYnN2\nCF/H\r\n=w1a5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4YGpggQ26RCLj+Ec3Ue1ufXRN3Q6UvP4dlSPCgUckrwIgX4dNdGuiskx7a3cxOSqCH8n7U9BLa2EdRThclHM7kvc="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.a7bc45ae.0_1594315419573_0.33318001416825216"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.b184bc1c.0":{"name":"@material/mwc-list","version":"0.18.0-canary.b184bc1c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.6ed717ddd.0","@material/list":"=8.0.0-canary.6ed717ddd.0","@material/mwc-base":"0.18.0-canary.b184bc1c.0","@material/mwc-checkbox":"0.18.0-canary.b184bc1c.0","@material/mwc-radio":"0.18.0-canary.b184bc1c.0","@material/mwc-ripple":"0.18.0-canary.b184bc1c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.6ed717ddd.0","@material/feature-targeting":"=8.0.0-canary.6ed717ddd.0","@material/ripple":"=8.0.0-canary.6ed717ddd.0","@material/rtl":"=8.0.0-canary.6ed717ddd.0","@material/theme":"=8.0.0-canary.6ed717ddd.0","@material/typography":"=8.0.0-canary.6ed717ddd.0"},"publishConfig":{"access":"public"},"gitHead":"ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ed045f87cb3f1a4ba70a20cb1f586b80a1aa928d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.b184bc1c.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-/hFTFOB10thyzHW9LQrwLQ8l23QjaMnI5NslZeohLDuETBqyhMIhOPcpVi16pniinxvUIwvctK0zzCLO3UAJFg==","shasum":"9725be205d4f6be6a6364d5a411e66474fdbc324","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.b184bc1c.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfB1TCCRA9TVsSAnZWagAANd4P/itkxkZ258Mxb5ZWku48\nMVY58HggWeM9jsQzp9Bt4G2v7fa7Y+fuJUq796vcBxOK8nxo63eypGzOQQLa\nmpzSKklGtDtoj3Ym6DQgcm9NSq4e6Gzxk8IczM/MQHP7ax+d4sm55X3/1t/+\nSr8fI0oQMSbUB4tnYFJcyJFhb+FfWtuti4tESKxhw+dp9Qn8au5AdafMKiAo\nrlLRzkFjQYJPz7Q7Dgguusp9bHnWqByyiWw9i0K10cmEIERKeRh6LPjpwiva\nJppP/8Ih1jXaLUF4MtyA9rrkfCQbvvWePLmc+qXtUKbr9FIYzc7CeqxqmK+n\n2miWBbvUapXjYXamQ18swdKCP+9n3BgGMXLIqrlNv3h7y3lxkgvyNEOOAUrs\nCrhTk7H4VVyYXKlbco+mQIbvcGNEcbphiYPdbZNnb8SJDVrtO9HKFeM+zkCC\nYTkDhjG8/RiK799epYDBEBePWiIgRhtg63DS+H054yyNde9JoKsTy+BC3HGP\n3Rj7I4wpOfCTuC8563wnC/DnAUTwQ4gwXLd4evxv1WhRMMtApodSRkYppgNw\njdD25qSmVJbjynWuNi3jwrr+qm69YR/POssvJ23kxyFtd9A9Xi3Qu62a00mV\nCOiu8q9LXEUYLV/4I7qVaM730Bq5Q0AeVXtehsm/65QGU5uC/ubFWyCbxQKD\nveVS\r\n=0k5Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWkC1KUvC0p1FovzaxUBuKhBtR8/TYJ4ExfweIIalqqgIhAPwVWxONQ/NSVe6TtOU7ZRMILO0ME5knyhVLxp8Dwnj/"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.b184bc1c.0_1594315969736_0.7879370690928509"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.b39fde62.0":{"name":"@material/mwc-list","version":"0.18.0-canary.b39fde62.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.6ed717ddd.0","@material/list":"=8.0.0-canary.6ed717ddd.0","@material/mwc-base":"0.18.0-canary.b39fde62.0","@material/mwc-checkbox":"0.18.0-canary.b39fde62.0","@material/mwc-radio":"0.18.0-canary.b39fde62.0","@material/mwc-ripple":"0.18.0-canary.b39fde62.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.6ed717ddd.0","@material/feature-targeting":"=8.0.0-canary.6ed717ddd.0","@material/ripple":"=8.0.0-canary.6ed717ddd.0","@material/rtl":"=8.0.0-canary.6ed717ddd.0","@material/theme":"=8.0.0-canary.6ed717ddd.0","@material/typography":"=8.0.0-canary.6ed717ddd.0"},"publishConfig":{"access":"public"},"gitHead":"561ab4c73d80c73f9b95c39655b7057d622fa2ee","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/561ab4c73d80c73f9b95c39655b7057d622fa2ee/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.b39fde62.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-CGJHxkelnzTzlUxNAvCavATa322ahvWQzaMjfO+lOSGK7MT3T+C8c4ZihsGd1/tpm6i1nJjgHIDPNXxS2IywCw==","shasum":"04f3bc61a45c247db8880712534fe57962509f1b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.b39fde62.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfB1X8CRA9TVsSAnZWagAAZt0QAKE4xrBeBppE1piL8Efg\naQMtxpRGLXvN/rBcjXn19lrptPRM0bQQ7zoyUnV6b28PM39BZIO8BBVG6np6\nzxrObghEujKhWsc/JKYZYhZbqxqbYD9lKlTCm8I2+YzO3Zn7bB/qf4fn2Rr4\nr1pH7AKXyVwwQvY5a/2AGfeCYio1sVTwlyUHHTlsCwho/eqwhTWta8/hQy4Y\nitdFKb5NgMXN3oDn5umRJFZfHuTP9IsX8xP1d+n0J+f5tnbv8JMGwqTiL5ve\nvBKChi5efLGwquI3ExrenXImDfVwq4Yyx/gOm2VRYUQeM+9igAoKN+fMRHJ9\nDeswAaAlNmRMVxU/H94F71ueyAnjE7/X8aJ7MsigpLV6iaq7+dh5TLhE43J/\nHKp06SISqJTlx5T3Xyq8ZWck+/MwYzv2tNEv04iLtencpwUCr6pw09W143H+\ndm6VuM4N3/KHBCP3sWIshQYHXTlxIzUsFlMS9XXK9frAOn0ebG2RzrZTYLSU\nJ69satSwDz0YuX2rUZ5bFZljogEBxGEBBhI9kLYOpxZJ1JuYiLK+FQbTBtb3\n/uE0n5HvmGip4y57FioOcnJpvysLYUabU906rkxZ1VzwpnpDY8k6R7ulaQQL\nC/LviH41X00utVcN9vqlQBMrJK/iQqgshQf6BXbODCbzqe/2ooGl7/U8BYlc\nGjLy\r\n=AAWb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBYs7QkGzU2NAQQOawhgODruAE9paWRAPc/r9KxGExX5AiEA3cHiT4mrpEzH0+DmeVRimPm1+cVlRCz6FwNdsE0s54w="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.b39fde62.0_1594316284279_0.9530115064701281"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.dfdd8d6c.0":{"name":"@material/mwc-list","version":"0.18.0-canary.dfdd8d6c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.6ed717ddd.0","@material/list":"=8.0.0-canary.6ed717ddd.0","@material/mwc-base":"0.18.0-canary.dfdd8d6c.0","@material/mwc-checkbox":"0.18.0-canary.dfdd8d6c.0","@material/mwc-radio":"0.18.0-canary.dfdd8d6c.0","@material/mwc-ripple":"0.18.0-canary.dfdd8d6c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.6ed717ddd.0","@material/feature-targeting":"=8.0.0-canary.6ed717ddd.0","@material/ripple":"=8.0.0-canary.6ed717ddd.0","@material/rtl":"=8.0.0-canary.6ed717ddd.0","@material/theme":"=8.0.0-canary.6ed717ddd.0","@material/typography":"=8.0.0-canary.6ed717ddd.0"},"publishConfig":{"access":"public"},"gitHead":"f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f0aaeb4b52155318bdfca32a9cd375c7cf8b0ca0/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.dfdd8d6c.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-qu8glIA9EyDbh/DMOkXoLEw3mgKP/O5kE2mKom6dIeLKiXA48cC4Dvdw7e60X8j+9Ou5kSIiPveLPnCuDyTmGw==","shasum":"a7d0d625fc9e3f3af715086c226b590acbe00c55","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.dfdd8d6c.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfB2FCCRA9TVsSAnZWagAAamUP/3cvS3ciwAwji4ogjLdO\nyJIXHorhtEfk3PtOuZeXChUolRnCJA8NzFUkNfUS7bXSY/uQOnJHvVfI9qa8\nAyNtVLgy27yAsArP2ye+p1rKgf/Ik1WxzPAe7vzDdj1cQb4gEiOGLAazzEye\nCpb/eQ2HziHY11RRV7oyBtlYxY7gJP9/Jeww5R6L4swH9LRbWWHt6y8VYIfj\n0MNbRVrOiwRUzqnOTeIHmsXPEJr8pArc4H7XhxjA8QGKeEXSMuQc00Nyainh\novtj3Gvw990CgjHEDFjXkGYi4zDklxR7NpmvTYB9nCUC4X1zmIiUN+ez2R11\nLMngeu5XbRcqRnNo/aLvB56DWOo8/hLWgiLnyaZVqTOwu5aFmGPj5SLhN6dc\nHlxNyppto1RS6BzoddrEg+oGAvJsGWCdVkVaHCTh7S5eqB4gcSn8eX7cUk7p\n2WdW3aAJAJjX42znTh59OBUCj2AokR1PyzWcUg3f/v0wINrjri0VAofRtGoi\nQ+KlH7YH41Q96h7JWGfzlZeKFMCo39pOsdxVGJiyzjAknj1wtxy5x+mUXC1K\n/F8KHv0Ubf+fXlNw6DArawXospsW5FAdG2qH5N9RaaVyFBiGRYLlXWtPnal+\n2e1wkvxrXBP9jEf4w4Yo7QPrA0guJcZz55b6OKa6wZyaEna3QTmlV2cO9Gxy\n//Ib\r\n=11Nl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICuaHVWpgn6UwvNl7rxO8F28FjbTiG/hJ4s1WyKQlvD4AiBFQN1S5akqzKu5fUeT7gCbHgYevOTRA/Xun3Xmb43h5w=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.dfdd8d6c.0_1594319170202_0.9684266862042614"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.11cf2694.0":{"name":"@material/mwc-list","version":"0.18.0-canary.11cf2694.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.6ed717ddd.0","@material/list":"=8.0.0-canary.6ed717ddd.0","@material/mwc-base":"0.18.0-canary.11cf2694.0","@material/mwc-checkbox":"0.18.0-canary.11cf2694.0","@material/mwc-radio":"0.18.0-canary.11cf2694.0","@material/mwc-ripple":"0.18.0-canary.11cf2694.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.6ed717ddd.0","@material/feature-targeting":"=8.0.0-canary.6ed717ddd.0","@material/ripple":"=8.0.0-canary.6ed717ddd.0","@material/rtl":"=8.0.0-canary.6ed717ddd.0","@material/theme":"=8.0.0-canary.6ed717ddd.0","@material/typography":"=8.0.0-canary.6ed717ddd.0"},"publishConfig":{"access":"public"},"gitHead":"652e6b8d96cc6adfa62d59e09d264defbb4f259b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/652e6b8d96cc6adfa62d59e09d264defbb4f259b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.11cf2694.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-epidcIGt++UBvLUz5+Rd2MvI16zXDAmsFo+tOn8T9h32aCDYmc7gW6eLx/GD8cHLGv+bM3+r6t3pFNVaeouRlQ==","shasum":"91071359214cb3d922113f8aab3d99d808fcd547","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.11cf2694.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfB4GKCRA9TVsSAnZWagAACC4P/j4q0M3l5eD2kCIC6eEX\nGjWaeD4P2Hz5rp20KBRddpkujIvQxAUFry2mMtBi1pU4frkvxpe+cB4HAXkL\nvXw14WPpmxS1Q4velzxvKojf3CZThLRdXfgEaLT1QrdBnOv6CBcJ17cG8T1O\ngl3DWpCOqEKE2X1UiEE3rxG2VEODVHYe3oWJ3VBIGlC/n5Q9VIHQjyEDFBRV\n3Br6NIf4QqhlQNB3kckUIG1z1hZEC8gHX68m9xwvOzmKwhCrMA9IUXRecRoD\nK1w/Ts31pS9t44YM/saeRs908ANevLgcvOTlgACvOUXspMYloSHf+CWod7ZX\nfrKV4QCwvLIGkB+4A2u8NYr5gT0RgFKjumLwpDXqyaric0c3XIUMxLl/74yJ\nXxZfmXJlBxcNrh5R3vZpGyVpGezK242vJ60YOBRhIdBOP9urG6V/iu6I6sYy\ncxOrvTSY9vFQtWB0MOQ4KrHtvTM9l4d3fEFXKed6ZII+SbivZGW/StPh7Tt8\n2+TjvQaXVVQdSAWxDMu2Z/dLSHD++kycUlEOtvl6OKNawQ0PJ5f37yoik60p\n8BCzawT0qFLHMYqQGN1UEm4v6TmyaPnDvd4Wp6ZWamuVTA7B3noRBbqOlXgQ\n615Jzo7D5SWQPjwzd+qOdXDNHwfPxldJu/My5KEund1CJPXo60KFF24k1O1X\nkQoc\r\n=dfjL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4k0Ix8926nMjqpLS1GRVDj43MI4ywiWkcZXu+ggQSoQIhAMFow1GTAc+R/73528lOHAPCX/8O/3rjdTW4n/jw/M68"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.11cf2694.0_1594327433485_0.318133975672348"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.436d66e9.0":{"name":"@material/mwc-list","version":"0.18.0-canary.436d66e9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.6ed717ddd.0","@material/list":"=8.0.0-canary.6ed717ddd.0","@material/mwc-base":"0.18.0-canary.436d66e9.0","@material/mwc-checkbox":"0.18.0-canary.436d66e9.0","@material/mwc-radio":"0.18.0-canary.436d66e9.0","@material/mwc-ripple":"0.18.0-canary.436d66e9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.6ed717ddd.0","@material/feature-targeting":"=8.0.0-canary.6ed717ddd.0","@material/ripple":"=8.0.0-canary.6ed717ddd.0","@material/rtl":"=8.0.0-canary.6ed717ddd.0","@material/theme":"=8.0.0-canary.6ed717ddd.0","@material/typography":"=8.0.0-canary.6ed717ddd.0"},"publishConfig":{"access":"public"},"gitHead":"95b44ecddb7a4ad5662751540e79c58656790fa9","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/95b44ecddb7a4ad5662751540e79c58656790fa9/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.436d66e9.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-g5l3/YXixJkOYM6b1iMO1tj9bqO0FXrPFiLMFuKC98TMI2IqWfZHV7DlEkcTuUJVsYz73hpjW/TWB2BEkamSfw==","shasum":"a6c5bc82fe315c66175c1f3a08602d1d00c38594","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.436d66e9.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfB4KqCRA9TVsSAnZWagAAb+wP+QDlBnmXMuvb4W4wF01J\nMP52OruQASKlZwV47vId1HUyyPehKvmoP/T545mUpgv/VdSbWY0U2BRJ+KoN\nvIDwk5/DdGiArzlvLpXGdLcObgC4FCHoGLe83z0wsTq0CQNBs0QuuDhMQmVB\ntnMFdwoQQpniCNL5bwFHCneHgpeM0fGh/oLtQZx/SdRNE4vm5Gv0ank1+LoH\nuRzAvP6aEAACE0EYuEntMTHZxTWC3KUNU6LwpQTpII0GsS+dIdLuztawndnw\nWWFLsFwessIb07reQrO638Ez32Q+r4UEj31eTJdMOGoQkI0IHfhRs/BBUn1E\n+g7ArVX7bYQeaHnrv9xsLNK5HmW7pfKCwHcWPhY0i+I70M+EpmPxsiNZMX9w\nLh+d99qgHgacP/fleqcvIBgtpltD28BOE4szKJGEjugoTiCLILTIRY9HGpkk\nNCkKGBpJK5B1imqPA1XCgxHqIRnJzNdZHXun6baSMkl4o4mHIXRtwaNr625W\nq4sNl4rXFifLli0zbF4pYQjvbZJidqz7c6nr4yghL1rZXjOO3JfHuDP9u2CI\nil0g8BwoixCjfQug6v2d8jczDIek4sHzdzP7Y4UM6xf6Z6YHqYqwTAVrH6Hn\n2SfG0Tya+ZcF61pjcvX/d67Q1UGzQ6a/6FlcaiOOLRYnAtoUrF40QiFbfnKR\nh9eQ\r\n=UfRM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEG5NZGOjAo6zwFai+9VRdcYMenwqkHNzhjVMZ33+cceAiEAkUPzuw1CQXR4nJiV6Yp6w+xIvi7tIb6oZDp0aBn8R+k="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.436d66e9.0_1594327722295_0.5156733313359667"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.3a44d36b.0":{"name":"@material/mwc-list","version":"0.18.0-canary.3a44d36b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.6ed717ddd.0","@material/list":"=8.0.0-canary.6ed717ddd.0","@material/mwc-base":"0.18.0-canary.3a44d36b.0","@material/mwc-checkbox":"0.18.0-canary.3a44d36b.0","@material/mwc-radio":"0.18.0-canary.3a44d36b.0","@material/mwc-ripple":"0.18.0-canary.3a44d36b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.6ed717ddd.0","@material/feature-targeting":"=8.0.0-canary.6ed717ddd.0","@material/ripple":"=8.0.0-canary.6ed717ddd.0","@material/rtl":"=8.0.0-canary.6ed717ddd.0","@material/theme":"=8.0.0-canary.6ed717ddd.0","@material/typography":"=8.0.0-canary.6ed717ddd.0"},"publishConfig":{"access":"public"},"gitHead":"2cc46bce7534ef7046c58891f32fd054a1fa8b3f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2cc46bce7534ef7046c58891f32fd054a1fa8b3f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.3a44d36b.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-CZv4qp8hRoBqtvNFSk5qDBqa7IYTmvWLovROhQOuDr6LmArpSFlwDXRAzHhfSpUTnGu9DiYenMtUfGMv9X58lw==","shasum":"630d28c4b4071aaa3e541cc2e077bb303f0fbb97","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.3a44d36b.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfB7hXCRA9TVsSAnZWagAAXZkP/jYJGn4+eoSoZygZg5tC\ngO+Rx2gF9W31GzbwnRKtpG80h2hs/wvSUHphvRjPVGZsKIw6HGi2dX1y2msu\nlzo6IWaQtUSI8Hp0QYN3sYQK+K0XewL20i8qBE6qR3dIuwPLagmF0jEPdKKC\nle+yckAFX5yaDe38nanhPl3K68IhzVPsxVWXuFhN2Eo+sg/14X8OxHebweMt\nb5rn4a1lI6pEbH+7x13F46X/GYIZGgnInB5wfkOo9h+S2hWJyFpewdjhP6Lz\nfiQDWP4Yg7iduk7/+Ni/QtcMuS3VqWXB98wTvJoLISHw/cKvwcb5rONiFaBb\nNu8umNTqwUYfOLHB/AJhZdQo4iclb5GqlsGgbZTe+to6bz9Qz/S+R6H6efkO\nNdD2taB/k2ReCsIJf4yZvwiQkh7X4sNFkqc4ZFd7zdskLAteR1mIwXHuD+cB\nLZs7QJv9TkY/fs8igIPMxNxFaeqmM8kN4/Y/OgmMItmvESD3Ffw4TPeo15kb\nbFoP9EeB/DjOaaVSVwB+azpRISdR8tnY2UvH8lnDHpVLGjmO4k3O3JB8+Da4\nvwN6+LtFdQ9xk6PKceddEqv0nZ9N1+F0xDsFdYQkyhjgCWBGoYIungM5uUCe\nL0gjgkvWOoK8/v1O5vtjmPkQTjVERJ3Davz+t68F8CHHs/Rj6079ocaYwReW\nm6Og\r\n=7plQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD9FOA5agSnsFahHfguJf9T1iDZg92M1/1ddxUK1BhTzgIhAI/BpUzFh9QVKfetglVcS0e07xYFK4UKHkLtLbI2ynyi"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.3a44d36b.0_1594341463515_0.7531681716196728"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.ec11ae6e.0":{"name":"@material/mwc-list","version":"0.18.0-canary.ec11ae6e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.1e7cb6198.0","@material/list":"=8.0.0-canary.1e7cb6198.0","@material/mwc-base":"0.18.0-canary.ec11ae6e.0","@material/mwc-checkbox":"0.18.0-canary.ec11ae6e.0","@material/mwc-radio":"0.18.0-canary.ec11ae6e.0","@material/mwc-ripple":"0.18.0-canary.ec11ae6e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.1e7cb6198.0","@material/feature-targeting":"=8.0.0-canary.1e7cb6198.0","@material/ripple":"=8.0.0-canary.1e7cb6198.0","@material/rtl":"=8.0.0-canary.1e7cb6198.0","@material/theme":"=8.0.0-canary.1e7cb6198.0","@material/typography":"=8.0.0-canary.1e7cb6198.0"},"publishConfig":{"access":"public"},"gitHead":"e68c3fdbbceeb46e346d694dad4b236fc74713cf","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e68c3fdbbceeb46e346d694dad4b236fc74713cf/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.ec11ae6e.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-VOd2gH8RQa7eDiGOvyfbw+WRrd+MIQyFmXB3imbgqnu7WRTvDJZhRFptqD+um5EEvsVRLzib7VoavC5b5Y2HAA==","shasum":"dc5e424bd427147e277f508caf0889e82f5e8be9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.ec11ae6e.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCKsZCRA9TVsSAnZWagAAA8gP/A2+1ImM0j73GHjMFUt2\nCKu7HDVOMR7Xglno1GR0fUdPPYBGDC9pQH3hmfAwpMhql3nTAakZhCEBRIof\ny6J30aY2oeewTRof7Ca0xmqutfwzOcV2146lDQfBMKX9VcWOMJlXc4dMp4XV\n8XIceVBiPm3aqFmsHltc3qDvInAUmmH3SiHjCGaYDINGYPD6NNkzO8oVfFqs\n6AyuZipuq+LRE2A+5RthuHNu5hJXHEQ4yahzMaElxzc/D6zYuGxoMO6Nkzmf\nsIM/9TRkt3pBZ96d4XanK1XNIf2pTWzrHsSzi98N07VAfzRfXuhwTjaNZvDc\n8vFOxUGojEKOet+MSB4s+Ok6KmiyNUfYtmmxTMKP464F3/ckNeJFEd07JHKq\nMhY4Mv2xMi64PzV0VokiaZuaIJTq5U2IAKUTB5uIQbt2gJ9VEAt9kcY/B4OY\n7OO/wSNWSZiNLgrzx7dREnifGNevAqXaCghKo+l/t+AsCiBdOJWHGEWQFkgn\nXouhvTonocAvUFgdhFU12tPXuAkoDfZ1fs9h245452NdYyAcHNPa6MkmkkjO\nNeV8J8KT8jYUuMp2t114siEEWzmTsfYqtylDe1jH43WyGa74XCuiJk6Xn9G3\n1Qxx8lBY2jnOViV005grbOlkuHznRewS+aS5C++qLWXKk9H5WqRsVsQ7osaw\nLydM\r\n=j0dk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF4nz55YeZeMViX3z5wD/hQhcd015pwZwJ9fe8E+7VdKAiBHVBMV3Z53quRtEjwubXDjYFs2D4yL70RMxINLEF3t2A=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.ec11ae6e.0_1594403608603_0.4754807134065786"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.17f6cf27.0":{"name":"@material/mwc-list","version":"0.18.0-canary.17f6cf27.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.b2edaeead.0","@material/list":"=8.0.0-canary.b2edaeead.0","@material/mwc-base":"0.18.0-canary.17f6cf27.0","@material/mwc-checkbox":"0.18.0-canary.17f6cf27.0","@material/mwc-radio":"0.18.0-canary.17f6cf27.0","@material/mwc-ripple":"0.18.0-canary.17f6cf27.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.b2edaeead.0","@material/feature-targeting":"=8.0.0-canary.b2edaeead.0","@material/ripple":"=8.0.0-canary.b2edaeead.0","@material/rtl":"=8.0.0-canary.b2edaeead.0","@material/theme":"=8.0.0-canary.b2edaeead.0","@material/typography":"=8.0.0-canary.b2edaeead.0"},"publishConfig":{"access":"public"},"gitHead":"a622acf92b818bebef7c3f77eb5296521068d267","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a622acf92b818bebef7c3f77eb5296521068d267/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.17f6cf27.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-y+kAihx2tSN5VXNl8AjQb/esSrXgyoLFD6v1qo/uXNv/9OGEZfYWiadiBHlf5V8OCHMCrThBfcyhsf8K38fnZA==","shasum":"dfea4eced8dee9199b1596372bcd118cb505ee08","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.17f6cf27.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCLRmCRA9TVsSAnZWagAAMCMP/0TRwIYX4jOwMUNuIOR4\nVyBtZj2M7Xu1uV+rl5yc6o1Aj4cTJNTkVbbuoNzGIuIxr+AqqURiB19i3Zfd\n6oR4EkLbguQfJmHt33o3PlsLd7zGresTSh4FdiQLGlVoTonEuhA1x3dhfYi7\nuKBAF6CamWoW991l6pGfUwq5TPE03BdMujYv4maQLwyjEzl02fjHQPdksmCx\njC98deEMNI++8bwWpulJqs2HriVr4xCV2eI8ZGYmJVnTekK3r2ptAQAXNqzt\nDZqdF4ZE9a5BQsPrRueBsx4X7Mst21OaW0vp4/1fprq1qTQ+NQfUxq4Caro/\nURYUWRG437vdRK2NpKOM2Aqfkqj493AFKcQsyg2yiudig6L3InAqOBjV63lZ\n3RNh8EZ4U3kYJvkEjpbJj8FuQttNZ2NTp9BAfBfLnXFTslZhPxUFnxjvkWH2\nYZu38DPlzwpdpvO6MVMKl9Q5ouKoy9cR3YB+034TQOxYShtimTcsmFLtHnDF\nMjzcivJ9+b/qNftelmuaU07xlaRhvsp8e9/oOZ9YBzu8iU/zNRt7N3lXNlha\n962Qiw+BQH5aPiSfChxalThV6K5BqYsGW+wKTKIODzGkSU2sLBSjkqKxB0rw\ndCRk43fxHASyxogK4Aey2JO5OedNwOHLX5w4PZy1rRqFn/ZWzBDWyw/aXofy\nNAk/\r\n=Y0e7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCcS53iYRw4YqXe0RksEhotf4EMjyT0dq3p7w9HIDY0gIgCwZcU3BQcHFxMYWlkGxV2f7REu1cXZQ2eEK7g9W27tk="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.17f6cf27.0_1594405990089_0.6435258144798988"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.efdfbc21.0":{"name":"@material/mwc-list","version":"0.18.0-canary.efdfbc21.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.b2edaeead.0","@material/list":"=8.0.0-canary.b2edaeead.0","@material/mwc-base":"0.18.0-canary.efdfbc21.0","@material/mwc-checkbox":"0.18.0-canary.efdfbc21.0","@material/mwc-radio":"0.18.0-canary.efdfbc21.0","@material/mwc-ripple":"0.18.0-canary.efdfbc21.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.b2edaeead.0","@material/feature-targeting":"=8.0.0-canary.b2edaeead.0","@material/ripple":"=8.0.0-canary.b2edaeead.0","@material/rtl":"=8.0.0-canary.b2edaeead.0","@material/theme":"=8.0.0-canary.b2edaeead.0","@material/typography":"=8.0.0-canary.b2edaeead.0"},"publishConfig":{"access":"public"},"gitHead":"d0c5bf147bc31e55a775562b113790bac6052eed","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d0c5bf147bc31e55a775562b113790bac6052eed/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.efdfbc21.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-7NsRiRe8prPqeSoz/F7YC+Vc6+VAWBznWXmPxzqBY/V5bw11rLXvdXEoLSgiULRKMVZvo/P3CeUGpUthi6fOUQ==","shasum":"06df17a3f0620c002da9fc1ae33445fb65cd714f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.efdfbc21.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfCLcrCRA9TVsSAnZWagAAqN0P/jkH3UNbOHFWQgzQda34\nR880XK7I0//Of62p/y+ppnPj7o8LasaVp2aYZ7tCiY21PTAbXrT0PH9ww6Jl\nCRCsShw5JWIKGpsJ1gy8FV63Cpw579/rGbEpJSrIYOcHY13R/+zHNthlQWWO\nxUyK3M+G2g85NWnbFOnYm9dYEA0VyE/vW+j/n654/DcHI4bm4Rou7SPrdcJ2\npqZuoK9xarVu0tFSpRE1J8aZyBGFQT7rK3L1JRTlwy9t1vhwZbpy/B7FwXWG\nQiE51WUNYD4VLw/urUWfBz8QFFTiI1lvJ+RLAYGjr9AufghUR/CeHtwJOaDP\npIYov3Hcl5Klfxk7ycOqMGKe8TG2c1a6ug4qmmlxcuZntOAvGy4LbKiWR9Vg\nAEOPFH9r/JQhLnu4jF5lvaTR8w5bT7e/F+gvNnxgUrW1DhpRFo88QlZXMy6J\n+mOVjud47gmkiuNW/cCQIEUmS615ibEBFPNE8KguY1VAGxdHzzKgsXz/OoKl\nhFCLJWzIdkPKJD/T5A/cN+1zhWDKI7L2GqfHbpcUqR1vl/6+ZgTpD57OFgVA\nblj9XmDyIDsX+D7WCQyB9NRr7RFiKBy8Uqz+runVsKsEb5dAsgYBOS3vH3Bk\nZAG7T8yW+kU3fAReoy/w861zhaEk1TqIpyDrB5zATbLF8OKVE7wMYfl/b3nq\nwkqo\r\n=TT0+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA8ABBgHXkozD3XAP12HS0icdJqFl04148OKnsP2kb1tAiEA8L0ytaVY4GHLyBilL3zFBVDazJRxtMCx6JmMZySHVHM="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.efdfbc21.0_1594406699083_0.2147029044400941"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.bae4339a.0":{"name":"@material/mwc-list","version":"0.18.0-canary.bae4339a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.5dac1f624.0","@material/list":"=8.0.0-canary.5dac1f624.0","@material/mwc-base":"0.18.0-canary.bae4339a.0","@material/mwc-checkbox":"0.18.0-canary.bae4339a.0","@material/mwc-radio":"0.18.0-canary.bae4339a.0","@material/mwc-ripple":"0.18.0-canary.bae4339a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.5dac1f624.0","@material/feature-targeting":"=8.0.0-canary.5dac1f624.0","@material/ripple":"=8.0.0-canary.5dac1f624.0","@material/rtl":"=8.0.0-canary.5dac1f624.0","@material/theme":"=8.0.0-canary.5dac1f624.0","@material/typography":"=8.0.0-canary.5dac1f624.0"},"publishConfig":{"access":"public"},"gitHead":"3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/3b615d0a523f0cb1bc5f7f0c0f7ca6eb5f52ee63/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.bae4339a.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-LnciPXzo9EhQP4I8AaOFY7hrRWoqvVZmJSejOdiRmMjRk3c2QqBtVMzghAYb/rwCamMy8Qrzq+hLop2zXQguXw==","shasum":"152a1fcd17e6db2af9e54077355cf6bdb5c1c57c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.bae4339a.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDeBtCRA9TVsSAnZWagAAOeAP/2HjQ1jLbPf2MLkOz8aP\nk3ZMwo/4EWLeqwVM9POHJ9zM2ZYPPK1jxRNWNpk7falR+1KP0ArOUGeeGMIb\nL0ILKO13ffQhgUgEJZtXlCrd4tAhZie2aEDK/WF5BVjnYKuM1khUZIhCkKoH\n9RUab5VMXLMqqnErP8sNrpwmQeXbtpb8OHT/kGXZvzHORDrqeWrYINR7sl9B\nscyVsGlPpWMX9CwBUg+YphGA7OLYBS8D4LHTX/tfRiYkrciFBUEJxSnTnzNf\n8y4ze9ABHQzFvbTE+sz3e0DUexRosFTIKcSW1YGS1/tjfV98p+dEnZrNIJ3S\npu3h6fxZIUP8K/9H7bG6TYz20ocTao8tz1tIArFbVDOphnhuadzX0waOuWdk\nnd/RDkrb+qb3IQFxTSx17piqcd66t/4xi1ysn/hF52RvxApKU0t0qMI2dWxh\np/ErJIUWXKVRIGDoVwaTZf9zEZPyKjqp83tPny+UXwaU4zK1nt1uDw6r64+a\n5AW/gEOPmYj7bsioMc0s+3m8M0f+kxaXvsQa+4QR6PX0jPndeIxk7JqpeAHp\n2jBRDHfYsJwHdb0wAeYfVOAwfw41MdYG2U9wUbOZzfv/672dgRalkVUUKnfX\nt8svv/s51/d+/nuw1cGKZrdIfcPhrb2cXq1B5O3fd06Ms00aVbGRVcncH6i/\nfVzJ\r\n=CsnL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGWjU7ezvCVlL0nzEfhe56gIiqL2GE+qAbqMZkzqvmBPAiEAt+pGbKBFZWo+vbmmtjscEN2Jma04nea1QKV4NXJJah4="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.bae4339a.0_1594744941514_0.6517095204190904"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.28eac13b.0":{"name":"@material/mwc-list","version":"0.18.0-canary.28eac13b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.e6e23019d.0","@material/list":"=8.0.0-canary.e6e23019d.0","@material/mwc-base":"0.18.0-canary.28eac13b.0","@material/mwc-checkbox":"0.18.0-canary.28eac13b.0","@material/mwc-radio":"0.18.0-canary.28eac13b.0","@material/mwc-ripple":"0.18.0-canary.28eac13b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.e6e23019d.0","@material/feature-targeting":"=8.0.0-canary.e6e23019d.0","@material/ripple":"=8.0.0-canary.e6e23019d.0","@material/rtl":"=8.0.0-canary.e6e23019d.0","@material/theme":"=8.0.0-canary.e6e23019d.0","@material/typography":"=8.0.0-canary.e6e23019d.0"},"publishConfig":{"access":"public"},"gitHead":"26d5b26372c667630c62d9894c9825aec9e06f60","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/26d5b26372c667630c62d9894c9825aec9e06f60/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.28eac13b.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-0DJoR5yDC/QfQmq71nW2xbL+aVibPmO926YxDDZYmDENzSoAhZ1ZFQIhHg/75sOEy5wNPsFlvSm5bWoeZWaKxg==","shasum":"e320cf3bdf935b2d4bc5f83dd2e6d00ced4b5ae9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.28eac13b.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDjB1CRA9TVsSAnZWagAAP1UP/jaCenpJxwkXlPwizBmq\n/jYNRoUW94Ktp4IqagAwdzNhtsgBRMqR1RNrhQw9OZks1w9z8soTlBOMdmZp\n1OqbUdd18D51S4NiMXKoBZeJZJBkBx4iN4JYR+ygnK0God78XHwSVQIN2+Wz\npskP2VINKWALm0Ea3q9sa40U1p039ahut7ccYffylLG70Td7bq7DFSiE1CxS\nJp1WRd8ikEF5gQfYKMOE9fUmDzLvZ9X1cALIKkSHHYChX5qo1+LoFNJ3f3Bn\nH2TGftUr1lW2mqsMprRwhlqbcpgDTMzrt0NBwhCCN0KafuT67gEO3+bJHPZx\nb/0/NdV+qUHvNX8qk/rsZ4m405ve+dQ37ZGKa/p4y0xutqX6jDogyiN5k0jU\n4ZWbiBRsQ3bqEun2V+ZOvF/QYjcLkKLkkLcFo3iApwJ3f5iHYIi0r7WsD+SV\nO1wZiH2TD1bkcrH/VaJEINvnswMmmmPDoGz6Z3XQwu0YclQIEIhjaHx+ZKmY\nxSyPamHEmaHRLjKiM0zTGVH6in+MNnXXFaxp+QTWgshfofx7JzZhh9wBIRjt\ng2/fSVjW7+EtF+XJXfSbkOn97J5JOVFfas7Wkz8VyHgpIs2+0tWrl4KpfkGs\nUeeNpQxGTUCBoqQF8lusE7MMckRTyc2GE2Vuca3jITQVbfL+BdvtceZecJLv\nAU2F\r\n=E9ub\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDzFXxvGAwwjugFMgdzz/uoyEWXYvKn7QP0N0m8ApZ9tQIgZsdDf8mvQlYe5HLwzQwFfXRwOeNNS06QkzSUawR00VI="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.28eac13b.0_1594765428646_0.09066228586272929"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.44966b65.0":{"name":"@material/mwc-list","version":"0.18.0-canary.44966b65.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.ad4df58c1.0","@material/list":"=8.0.0-canary.ad4df58c1.0","@material/mwc-base":"0.18.0-canary.44966b65.0","@material/mwc-checkbox":"0.18.0-canary.44966b65.0","@material/mwc-radio":"0.18.0-canary.44966b65.0","@material/mwc-ripple":"0.18.0-canary.44966b65.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.ad4df58c1.0","@material/feature-targeting":"=8.0.0-canary.ad4df58c1.0","@material/ripple":"=8.0.0-canary.ad4df58c1.0","@material/rtl":"=8.0.0-canary.ad4df58c1.0","@material/theme":"=8.0.0-canary.ad4df58c1.0","@material/typography":"=8.0.0-canary.ad4df58c1.0"},"publishConfig":{"access":"public"},"gitHead":"e431cd0a71967599b61ba4219d726819807947ae","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e431cd0a71967599b61ba4219d726819807947ae/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.44966b65.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-yz1HPtIQqmRD622ZU4kldHSeVMUnpS3PCVfCFLlHjCs/Gmr83mwuDC/5mEpmz65lzaj1SDBU+fp5BoyX2ew4Sw==","shasum":"222de24aad8037ff93e1fba3f4ba9e2f149427fa","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.44966b65.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfD0VhCRA9TVsSAnZWagAAVAAP/3cNsB+8Q4Jb8nztGlSo\nNZmwfgFQsgdqpOYAHQjAcMxGdbgBMx2aF+GSmqj9oDb1m8hpJFa1HHBlTCWi\nXBCZdzd0QRa8J7FAOW8gUDADFVpAE6jgC3k3yh8bwtN938iNSbwWbKRP3b3L\nnX8t6Y+dvf8J5PEyH5FzZQgawULsB6Z4Ya808hYw/AzhBwpynRAge6iM4Usr\njuwRJRWIcK+WAE3Y2gr0GAMv+psh1FW068oucmxKInZhWjoXvNFdiJpiT1Ly\nu/8M6oOmkz0uCaHDFFwwbN7jtr53Gp+VWD9TM2ZO3E9JNV2bRbZy31G+LYY+\nE675RWAGC3zB5QPSpy4QhbLWWStI0AYHVH5/ZSzJVhk+ESIWdZrsz0gR45/e\nTf/MN3X8GEqOKsLg7tQGFw+iA52Y4GVXsRqADSy4rTqg2//3tS6ErvYxXqT7\nRDtD2ul0uonbNQeHBiuYVDC2s7p7hTjRde2ZeSf+mfzoIVKEYOR8zfgO/QdE\nEMZYEx3tXJwakI0myjVmWUq9OOxOB+DX1/XIjd4969PnRbj2hSNCc0fs5TcT\nUd3aDTGz1/V2K1l0iI7N+hzLsFY1G0Yi4SKukFz/KbOni11OQjDw9a9sQpR8\nzkDucCy7Xgud2VneGlzXLQA+zFWxg4qSeWMGArPeWO12ZtiGY7HDB7yfGzIu\nZvfF\r\n=Io3a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICP9/JYrEakI4hOsWfQf+1KBLGrxGDZYVMPcgRHI8bF/AiEAnQF8vtjmdDl5Sh+naWP7WcJcqohvt41kFrGEuY0B3iI="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.44966b65.0_1594836321430_0.32171724653328204"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.3ef0ef60.0":{"name":"@material/mwc-list","version":"0.18.0-canary.3ef0ef60.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.01db89053.0","@material/list":"=8.0.0-canary.01db89053.0","@material/mwc-base":"0.18.0-canary.3ef0ef60.0","@material/mwc-checkbox":"0.18.0-canary.3ef0ef60.0","@material/mwc-radio":"0.18.0-canary.3ef0ef60.0","@material/mwc-ripple":"0.18.0-canary.3ef0ef60.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.01db89053.0","@material/feature-targeting":"=8.0.0-canary.01db89053.0","@material/ripple":"=8.0.0-canary.01db89053.0","@material/rtl":"=8.0.0-canary.01db89053.0","@material/theme":"=8.0.0-canary.01db89053.0","@material/typography":"=8.0.0-canary.01db89053.0"},"publishConfig":{"access":"public"},"gitHead":"6fd176476c86425b826862155a44202aed930407","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6fd176476c86425b826862155a44202aed930407/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.3ef0ef60.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-cqSBwMARqjuNDkvM2whWo1YylJAHPpTwexLjfsxEgnmpWYUOAaJdba6zP/1JJKsQNp9Pj3Shl3zbzmX2Zpdz4Q==","shasum":"0070a28d220b8bacb3acd62ad221954dbc42a643","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.3ef0ef60.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfEIZuCRA9TVsSAnZWagAAdTkP/id3e1MG8X6tUU25dk+t\n0am7SGFcTHPnrftLhBPCVizuPzRBLMQ8Era51WrMYFMEzdcwKJDJVlMugi5I\np01kvg3RU1zhameDyVNldDj37gV0ql9lbgXm0keY8tCIUiAfwT4LGS+gj4/z\nLxyvZ9K8Te8wFEQ8ztYWhuABF6dYye96+vpy54UKf3InJgNHLqIja+tKtTSN\ngCjaQXQL9F1RbU26bw7RpHH+Rwpex7dsWlkZs8z2xWI9EZrr+aEFVzTODC+T\n4CgNrREKRs7G2Ipeo/FqhEsthnk2LO473oFn60UUemgl7ISp5Gr68v5oKMEl\nyW5axS5r52ZjwZGoxvdlyD1FoZhlP8l3ensBl2EXgfPTKtnk17dVay/d72pu\nFsd+DYaAxF965XRNPR2Oa6byBSKSrIYelRS6QuLqyQ+jLLSFufZx0WKe9zKl\n1c04OPGNI1fMxj+D8Qu/xZpYLv97r0Xz7z6I6TiUYFU+P1BaAiarktA5t8d8\ngN23xpgHIv+VnffiPfG4EsJ+XxvxZye8DJio064rgMap/exRz+mx9Vj27Rev\nUPzM/d1EOBqzlZYbz/3Yq53hW7Rqf50ueJjGemISDEoYvnF+uuQDfhBQ+oqG\nU/mrocc50jV6xzymP+aO9w6VvEjaD3iHS9iI4m0iirFyjYUh+KVYQgc9LJBT\n9nSI\r\n=ukTK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICi19zErhuCUq9yFMXblJh4pDyg1guS2OuNqmgC4bI1DAiB7UbZuNAr3pR2sahEgUbYN+74VRegzGFv+q36pTwpHcA=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.3ef0ef60.0_1594918509819_0.45928176819465705"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.fcebf9e6.0":{"name":"@material/mwc-list","version":"0.18.0-canary.fcebf9e6.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.01db89053.0","@material/list":"=8.0.0-canary.01db89053.0","@material/mwc-base":"0.18.0-canary.fcebf9e6.0","@material/mwc-checkbox":"0.18.0-canary.fcebf9e6.0","@material/mwc-radio":"0.18.0-canary.fcebf9e6.0","@material/mwc-ripple":"0.18.0-canary.fcebf9e6.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.01db89053.0","@material/feature-targeting":"=8.0.0-canary.01db89053.0","@material/ripple":"=8.0.0-canary.01db89053.0","@material/rtl":"=8.0.0-canary.01db89053.0","@material/theme":"=8.0.0-canary.01db89053.0","@material/typography":"=8.0.0-canary.01db89053.0"},"publishConfig":{"access":"public"},"gitHead":"27c24842ba1b663ca72b52321d89d72fc7ef34ff","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/27c24842ba1b663ca72b52321d89d72fc7ef34ff/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.fcebf9e6.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-Ar8I9DJC5kvS1un0Ac4jgRe1EaLuABKkM0Lq2dof8xSUVgyIr2izcsGJMGthvfjs3inzOpLc+mkAC0VMj80/Tg==","shasum":"6f1e3f0b834b210cbd6ce828f6f169c5cfaeb181","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.fcebf9e6.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFeaBCRA9TVsSAnZWagAAVecQAJQU9GxqkX5p78H1Getl\nZ1qeJ/UqWqHor6ca2uml4bgQyRbYabaJTaDmLSplFU2/DZfnFi9FPS7rof6u\nCj5ew/GGtNP2OFIHS54TXoeWSbPeV1ksC3+erHLy/k9sw0avO+STLGqqQmu4\nU9fXV/Kop9QFrERU3lztkZ3NMUw7/RkzQZyria6I4LLQ9mrviOyzqgdS568s\nPHOPv5zpNQfXcoNI34nhEmbpPz1TGa3gNbtJSNpblERaNn4Qga9+i2iBml4Q\nf/SYJ0FTPC5PL6JWB5/tm9X+hD9V6WoXkK7TWdEfQ7eNrf4odr5jIpkTOYKp\nAYsB2vaGBjMQQdomibqWBySmvAS5/mwbAhXJuUt1YwhT+wp5YBV+2M9hUxsA\n+YUcSmqQVYYWR8DQluEGnNkYf4IahKbk7Zi60tW6UH98Xpjuorv/PpAgvQsq\nwz0VQM4bU1vIJcmv3DfQ9wni/eKVecunRUBYovGWTW6dovXPzpMnDP+j0HFx\nrY7MzZHQqfds6xXerp55hE7jWmnZdlgBikig7GwSv1R8q3FZPJwV63Cw503t\ngICzLbcb4AwfXKLRVL2wpIULg05A9+vJ9y54n+CIHq76bVdvuzmx02Lfm1R2\n2fYQmWTr/6vy88/4DTCFtTGFuH/CjAWoYicq2cDFOIzLKR8xga7cQpo5P1fn\n1rPO\r\n=CKFq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDu5eofmYcHQFRtgqi7zipj3xrKhElfn8AmzVcGvZW8wAIhAJF5Tp5cTsyKd7KqQyy/XAxj5pu/YcYvLbPox6/AmOGO"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.fcebf9e6.0_1595270785298_0.373121024383992"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.b6a772df.0":{"name":"@material/mwc-list","version":"0.18.0-canary.b6a772df.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.fb5a4cdeb.0","@material/list":"=8.0.0-canary.fb5a4cdeb.0","@material/mwc-base":"0.18.0-canary.b6a772df.0","@material/mwc-checkbox":"0.18.0-canary.b6a772df.0","@material/mwc-radio":"0.18.0-canary.b6a772df.0","@material/mwc-ripple":"0.18.0-canary.b6a772df.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.fb5a4cdeb.0","@material/feature-targeting":"=8.0.0-canary.fb5a4cdeb.0","@material/ripple":"=8.0.0-canary.fb5a4cdeb.0","@material/rtl":"=8.0.0-canary.fb5a4cdeb.0","@material/theme":"=8.0.0-canary.fb5a4cdeb.0","@material/typography":"=8.0.0-canary.fb5a4cdeb.0"},"publishConfig":{"access":"public"},"gitHead":"aff69a9137a8578f83238c4b15f6ef6447db7c80","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/aff69a9137a8578f83238c4b15f6ef6447db7c80/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.b6a772df.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-rW/LC1rUjBTI9+j3n+uxDeRyWDwJw/iT4Ae6M4ZNB69hu8HEgrUB57/kqmjztr9PmF7FCLxDsaDCJ7hlSjDTlg==","shasum":"77bfd6dd30b3fe22e16c275e2f63c7a90593afe1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.b6a772df.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFh7iCRA9TVsSAnZWagAA5ywQAIDD6c6/DRJrzhLDYmiM\nZ3hWQw76+RnkBZfKcnmxWte/z914S6EugKuby7R9N9fz35/dL1OQl7ceKae1\nFSHTRSNBwFp5HE5oWZmOgwQXt1Ni1j4vdRmpL3bVImU2A5SVA/FJ2L0Pi3UF\njZe4yybN54b4oc8cSPlsXZVqKrjTOSSu7mxTzuQViaJvcrXzMH38GwaGx5M9\nmo4ZhyM4pSxz98KIB1SP5hjdreMGq+2ytlF6levcP4uiPYl3EjnXFteAspEv\n+E1Yp6kbWZgtslBB6ToBD5Qcn1zjvVlE2D7hSLIL7FUepuJVG7JDBnNHTsrn\nYS+nM0sk6zE9HsqccsyPa5j5ruAFlA1DiIzaTMEC4bqlmvHKrJCnB6Q9KwEH\nq45Xq8sep9dkL7h3AiT2GSmkknDvMzh/hdRd/TEPPUSC+McAsYL94JmM2bU+\nER/GT/SpWrByed3Wyk9X3ytb6/i2U/57pabLoVTS0nz/0oov13xN+TFqw/MG\nPGxnJhUBfr66Luhl0pzsuENeM936g0GwKSGhqy+8fGLpBCIeEgfsFnPTXVxk\naG84xNZtlNSIje4aEy7a0ANRvn9rD5z7ZWdsPqZLb8cbbmQ0sQKVMjyot4rB\nbUeSyE9Wgpi75UGPNIc3sU50MPCTOW2EcNzYXQo0rl4eKR1Tt+G+RFbhQMS/\n9aL2\r\n=kVgP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC0wX1ao6QOB4KvE/TBj+FFAYep82AjdvCe4Ojr2UJj7AIgJR7+KfaojRsn8peOGZWpRRxIODEtOjkPKq/Y4+ERMtc="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.b6a772df.0_1595285218465_0.010759272555737054"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.f6a6ca38.0":{"name":"@material/mwc-list","version":"0.18.0-canary.f6a6ca38.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.abcdbcfeb.0","@material/list":"=8.0.0-canary.abcdbcfeb.0","@material/mwc-base":"0.18.0-canary.f6a6ca38.0","@material/mwc-checkbox":"0.18.0-canary.f6a6ca38.0","@material/mwc-radio":"0.18.0-canary.f6a6ca38.0","@material/mwc-ripple":"0.18.0-canary.f6a6ca38.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.abcdbcfeb.0","@material/feature-targeting":"=8.0.0-canary.abcdbcfeb.0","@material/ripple":"=8.0.0-canary.abcdbcfeb.0","@material/rtl":"=8.0.0-canary.abcdbcfeb.0","@material/theme":"=8.0.0-canary.abcdbcfeb.0","@material/typography":"=8.0.0-canary.abcdbcfeb.0"},"publishConfig":{"access":"public"},"gitHead":"44166a768d79b9da90f97e27d954aa263d27b4b5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/44166a768d79b9da90f97e27d954aa263d27b4b5/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.f6a6ca38.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-DiaCXP7ZEFFjEKvRrMoHcC/cd+KFJJfhdhwQY+v2apDqD+Vex88qEZvFHIm0noNWQSeziZy247QAeNE6D66y3g==","shasum":"d4c577a0ae02f512c3e5cc9b9bc41194cb891330","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.f6a6ca38.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFxqsCRA9TVsSAnZWagAAWhUP/0A0wYScuduNze+gUEAb\nVRyo7TPPMO/KRzsGEIVzBkyLjCplN4IkBuKRv0qyFQhC3Ahz828sNe4MHQkN\ndI4ZFNhyl0PCz/wmOltFQnZ3hN2sjOlALgdSrWKD6aRFjA6SKqm++6QGvRLz\nMymkJxG/5aakiuxfD3pwQbFuBnjjgSI+mJ8hsI0N1wvsLUs5l1ulp/OrwGCy\ni57t8/zmGx9Ty/QDejXhm3Rvt/OZ4zc6o6VvLEU8nXEAMKAF30HSo8d/ed3L\nO8bvs3990E62vRR9xwj7VdrLPiRZdWCbDM6ok/fPE3FN258fbVy+EwDlWcEA\nDTTRqYNrqk1ts+HHPXi/R5ofBLmP20fmfBhwrhsmjQk2UkTtXycyOqk26apy\nBR53pqvRrEmSEyNNRuLzsRH1rGoy0v7NCOQ2UnS76xe/OckJDRTq1WjsmmpN\n7iiIkeyf6O2fkt7knV/Fpd2Aw7pSe+nyM8pdJVLjNLidDLfKN36+Ec8zrIS2\ntUDiRV6q6KKyFK2VjIx1QnbLKmE/X9kAQpHAr+5WYiS4Bjk5nmytIhWaSag8\npoMVGW2k25KC17EBwCie8uLxjb99tYJzjXo9HO5HWaglruEtHoFatUnGWBek\n6xYH2HCP2tW7YLuucDDKwkLb6ReH1kTeY9DmTstrXiPKYhe5oV1W3rbfTwaB\nXdF1\r\n=F4Wd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHaafsIrAD3kgjOHR5pZ/CaCpWuPZgp/j36x/LuVxZDsAiA1s6gpDexShuuv6GMCGTZLDR0HJUEganefEXtcJuXGbg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.f6a6ca38.0_1595349676160_0.7555818118938609"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.647dd6b7.0":{"name":"@material/mwc-list","version":"0.18.0-canary.647dd6b7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.abcdbcfeb.0","@material/list":"=8.0.0-canary.abcdbcfeb.0","@material/mwc-base":"0.18.0-canary.647dd6b7.0","@material/mwc-checkbox":"0.18.0-canary.647dd6b7.0","@material/mwc-radio":"0.18.0-canary.647dd6b7.0","@material/mwc-ripple":"0.18.0-canary.647dd6b7.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.abcdbcfeb.0","@material/feature-targeting":"=8.0.0-canary.abcdbcfeb.0","@material/ripple":"=8.0.0-canary.abcdbcfeb.0","@material/rtl":"=8.0.0-canary.abcdbcfeb.0","@material/theme":"=8.0.0-canary.abcdbcfeb.0","@material/typography":"=8.0.0-canary.abcdbcfeb.0"},"publishConfig":{"access":"public"},"gitHead":"ebb4e6346746ba552191ef32f6686136b75b1a6b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ebb4e6346746ba552191ef32f6686136b75b1a6b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.647dd6b7.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-TfpQkPK9L5UzqAlamY04k4zCkD54KuD5YvOEqvgKiq9Fq99pJ2DWeE0soF+U6wjSx1slods7uiGjIEEZbvgFww==","shasum":"b7ed8f9f64cc32aa1e52014dfe356801c57843cc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.647dd6b7.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfFzeRCRA9TVsSAnZWagAAH6UP+gMt+8dtL1klA/10Xca+\nIy7rSxgEcgAVRqbEwMhqRUssioNIbli4/4rgzedgTMAAm6NciuwW0UIKM5zs\nNtw5ZHiV0bGYR0CuvMGxc1EWHquIZyjejnoLwJ8O8MQoL7D+yW1qPmOQHf8t\nfimluopSXba9oWgOoiMGCrLlLKZrHd65YkWIkMBdMXoqFqmC8JtUpLL8xiRR\nV6yyQAsvTPEzqmknwmRHxZCXpoPbB6MLDnqoZdE3NWZRU08B6H1AxSk6skCL\n0EenZvi099XIEMs7vo/gZMdzSe1FIPoyV4AHqeJEAI1cj0AhAjl3XiB2hBqY\nw3vARK5VC78gTIQAJzMxomzRaaISYgemVBdUOzPuqsFOOUb8Ssie9OFUQIBL\nzxXl64ASjZaFxC8w4mprLLVxm3aRoYOcqy05cMn2oKUOpVztIDOcc/UPchH6\nCMQ7ki/xRc6c+DRUMxFdHxVLUXXTiZXoOZ1UFTFYvrKbUhMjPfFXgpJnlWm1\nFEgxcxxewTxjpsJ6e6btQxREN/YTmCn5S8qJL4l9s+lp3znu/d4vcnSrp3oR\ntPRmdE6YHsFiXgeSwzvtoADzdhxnzrxXLHtFjosnFFVhcSlnvKy18FF+lK/T\nqZH37FDq6RDiTN8YPvZQUiv6PWP1WO2wjN8Pmm9JyemV6zprkEmSbfNU4UbJ\nOUkx\r\n=fYTu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC85lTxqIBIjl7vzRZ6r0a22IykA9YXvzqHzh5oKXg3cQIgT8cDxzbZzF5Fu9hc7LVs3Li+llOWGKl287sgd42hX78="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.647dd6b7.0_1595357073035_0.43626769803864995"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.3cb7406f.0":{"name":"@material/mwc-list","version":"0.18.0-canary.3cb7406f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.abcdbcfeb.0","@material/list":"=8.0.0-canary.abcdbcfeb.0","@material/mwc-base":"0.18.0-canary.3cb7406f.0","@material/mwc-checkbox":"0.18.0-canary.3cb7406f.0","@material/mwc-radio":"0.18.0-canary.3cb7406f.0","@material/mwc-ripple":"0.18.0-canary.3cb7406f.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.abcdbcfeb.0","@material/feature-targeting":"=8.0.0-canary.abcdbcfeb.0","@material/ripple":"=8.0.0-canary.abcdbcfeb.0","@material/rtl":"=8.0.0-canary.abcdbcfeb.0","@material/theme":"=8.0.0-canary.abcdbcfeb.0","@material/typography":"=8.0.0-canary.abcdbcfeb.0"},"publishConfig":{"access":"public"},"gitHead":"18d8050825886f251014bddc9658829794a0010c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18d8050825886f251014bddc9658829794a0010c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.3cb7406f.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-+IDxGztWKmDbIkTzE/pChDnLu0a/Em/oHkoByojsYzXAHZctPfluRAbj0ZwZfZbMaP23y6cUx4dUZgenQU8rLg==","shasum":"91d606d960e8f99414a19bd80a1e1eacd052b641","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.3cb7406f.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGIwyCRA9TVsSAnZWagAAyTsP/RbT/7eTRaWip2jmTUG/\nravxgKJMH2IlbBAEBQgcrocXu+P2ZTePokW7UPj4sA973tTxCw8P437VcLhm\nByzVxqvM8Mi6sGvQR/i4TpNmEXX/09uYAD1xiJuUyMC/y3FMtQ0pWqQFAerE\ndaxt4DTFK/jTVYQ6AAOmwpCXv8uk2AmNpxzlL0xERA0fnELX8/vjiH7Jgrga\n+datrhJBnJR9gwDGmv/dKmJI30tBzTB/hLftPzv/0sq67wUNXFKWodfuyTmq\nJtYKwxzb5K30/eauuV9Y+TzmVCj4n7GdMwVoWDyc6l4cInuj/w543vjUQ4nw\nSSXM37EGSyTmfXJG0Qp88wPxAfwAA2LED2Wpriz1WC7Z88ZUVjTSPun+eANL\n99CdVa9sGuO+y3JKd+oaKKedg87UTPCk+S/eDd2qAPbaK6MqdwNYhV/ka3cf\niIiRX7disJz2tt/CmvwSsZg3ogJHNfSpTa6j5b1hgr7Rxn6ZsxgMF97i8mqW\n2mNO95W3cU54ER0DAmmDtPfB9lfMQjAjduiP+o3o6In5VKVt2K1Q+AnIfZ19\nC5GdbFpbB2L1HHsUM4UhDbsQa3bc2W65R8dmbaVoAIyWFLKMqEC7vFOOfxZa\nfafJtLgYqjMxI4zTWnMAd7ImSsASKC74C5OEqL/KSfH25SqnLERwMNwOfLy5\n5dBV\r\n=fW2e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlOxFB4UfU/gJ9wDScdBdlcPHQPyYN2by8mQJgMfOOIgIgJB8+MJ3s1czYosmC8uOrWQqSF4Fjob/qMPEFxOZiIC4="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.3cb7406f.0_1595444273928_0.13670377826475266"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.5717a5a1.0":{"name":"@material/mwc-list","version":"0.18.0-canary.5717a5a1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.abcdbcfeb.0","@material/list":"=8.0.0-canary.abcdbcfeb.0","@material/mwc-base":"0.18.0-canary.5717a5a1.0","@material/mwc-checkbox":"0.18.0-canary.5717a5a1.0","@material/mwc-radio":"0.18.0-canary.5717a5a1.0","@material/mwc-ripple":"0.18.0-canary.5717a5a1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.abcdbcfeb.0","@material/feature-targeting":"=8.0.0-canary.abcdbcfeb.0","@material/ripple":"=8.0.0-canary.abcdbcfeb.0","@material/rtl":"=8.0.0-canary.abcdbcfeb.0","@material/theme":"=8.0.0-canary.abcdbcfeb.0","@material/typography":"=8.0.0-canary.abcdbcfeb.0"},"publishConfig":{"access":"public"},"gitHead":"80cfd9e67c10918291b4799451796c633cec6f96","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/80cfd9e67c10918291b4799451796c633cec6f96/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.5717a5a1.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-i7eB716bcWkTMeIq/UIixMNR7CRJpvIp9+YvPol8hoDaTi3uQTPyLgGrhdHiFHD1a88dJCYZvt+zgy8Sc+gzCQ==","shasum":"58f44583a73fef6773a3bfd1b382f354fe1a5afc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.5717a5a1.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLJACRA9TVsSAnZWagAALggP/2KcTS6H7lqD4YXDFVqz\nqq9umLtiwQYK2g+ziIrvFpOgXpG3AZL0sb9C9N4wZySvuGm+GjQIwJyXOPh7\nKNfqtWR1gPnPmdP/DT9SEqTs44U6HurspnpWzl6X0U6nnrSkqfWG6QN0Xm0u\ndhg3eSsR7Szkjz7mQXpk5DBY6lkR11sOMESq5MUifmGUYE74q0w7Te8itSz1\nBK9T4iHGNuQXWJrLENsXwHyuu72YoFNKhgXCxZJnfTuzH6WA8yQXUQ6t5Fdv\ntnp5nwN4OwIMGLcPiFp3uFKh4FFn+bQ/rCdNZZbrcuF9F5iUmKWCpoRojAnj\nsNOs52RaZqhnzpxIS4Hvb1WNFfreEZIfJLxNnW8DFlZ0ZJLQ7lBhUTqh0gZQ\nFdES3DUCyl3Z8Q3HRK0A98NOQrV3P3wCsIwi/cTbMWSE4ovYcOz0CJgkEcox\nSrAsfMgGCILUOUj5hZ5foVFu/tKjcNjJBL8ZxYKP71XSir9ww0B5MUVqLDr1\n8x/4w7BAAVapRYFNGtDf4E2RzrjewdMdvlwxJDyrfWXFLh2tuz2rglf0Reda\napcke8h+XEPygX9NaMCyFrWxt9HsqhD+WM6clg6STz1KstcpRQUECO8WtKuL\nA+qyT6EuCy6tD6cRsnE/0T/9sSFEZ3hzAm+myesYwEK9Vkc7+iPv+rXbW4mX\nHtrX\r\n=Qcpd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHFbcg/KwMTg29egqSWYyLVUTQsyEHYrSYw+MAIdjSjEAiA0CVTCud6m4c8jyyoMmkEGoeI7cbmnDxRDq8Ss7qSTtQ=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.5717a5a1.0_1595454015621_0.9899785078147516"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.d84cd4b2.0":{"name":"@material/mwc-list","version":"0.18.0-canary.d84cd4b2.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.7bd5075de.0","@material/list":"=8.0.0-canary.7bd5075de.0","@material/mwc-base":"0.18.0-canary.d84cd4b2.0","@material/mwc-checkbox":"0.18.0-canary.d84cd4b2.0","@material/mwc-radio":"0.18.0-canary.d84cd4b2.0","@material/mwc-ripple":"0.18.0-canary.d84cd4b2.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.7bd5075de.0","@material/feature-targeting":"=8.0.0-canary.7bd5075de.0","@material/ripple":"=8.0.0-canary.7bd5075de.0","@material/rtl":"=8.0.0-canary.7bd5075de.0","@material/theme":"=8.0.0-canary.7bd5075de.0","@material/typography":"=8.0.0-canary.7bd5075de.0"},"publishConfig":{"access":"public"},"gitHead":"c90ecef90fa937fc0931100e4f1d3627211865dc","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c90ecef90fa937fc0931100e4f1d3627211865dc/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.d84cd4b2.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-jrVRRZoDSjSo1pIofuZZvM7svLBDI1qt8INTpe1+gyYxbmdv4YWnc5pP5Syl0nPo1psnEt+glqDxtRawGmLHLw==","shasum":"42a4c2f671801b982bfa3210d045aaf04a17da46","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.d84cd4b2.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLK7CRA9TVsSAnZWagAAtTwP/3X1MWeWPx+hl2qoG41I\nwzGIE6B2hng1j0qS3LvrNx6XZhPpXgjqMj4EWEHS/DCnD8c6hwo8bVfYK2ws\nQQD45Y3WUtiTHhFsqmcVfp8xbAqzAW8uPX7ecZp3hrG+r3WNoc315AuVLTb1\n9vveY3FZK4x0IE0Ouxxkoc269h0CH/+npzRNl6Po0BbjcDe18w9OC5+9G1YE\n57hSXC98+20NM0TcJWHUDdGaNVGgsdohQphXKE8iwXP/il39QzGl6adFawhN\nVRe19xhIcmqLUsH07lEglw5DHCblWnS85wBGcnkjd0zZxyJ/HgC8HHzKIUjg\ny4HUanOxCi7JNKbr85IObEKQSebLouVOK3eLK49xSC8ctgkqg0tgIdmeodGb\nUjoJYvCiwW/MPgtZlYe6VSviK2mdPzuB0iuGjjc3D05iTH9zGnXhEMzS3/yQ\nfF6gnSF0mg1ccvB+7JsQrJFhLq6GP4gC+5n5RJuywDlUDhz9Z1HJZmF0Jd3I\n6uSSXRmTwzacPHJl3Maf/oSgMNVaC9CnLYI5+p52SryTYdCyZbp/RrpKxxkG\nj91sI9wlrJ7Rlb/3eNnZiFS0g2Ewxup8xQDRa/hTtDVrDFXTOHIuWxuSd5pH\nbHl2k/vtnes9ctrflHx6A8kNn8FLbDi/S7fwO4OKtfUk5QvLPQXNzXTGjr8N\nHOb9\r\n=BnSR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDbZYdE1ad64K1WpC9H6hZOoc7u41PTp6ByVJDRIqv1YAIgMXA8F9WhzUwS4frVlv0Q20cYfRRqOc/sOt+8dYI81+E="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.d84cd4b2.0_1595454138766_0.3607162179370973"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.f279e7fc.0":{"name":"@material/mwc-list","version":"0.18.0-canary.f279e7fc.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.7bd5075de.0","@material/list":"=8.0.0-canary.7bd5075de.0","@material/mwc-base":"0.18.0-canary.f279e7fc.0","@material/mwc-checkbox":"0.18.0-canary.f279e7fc.0","@material/mwc-radio":"0.18.0-canary.f279e7fc.0","@material/mwc-ripple":"0.18.0-canary.f279e7fc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.7bd5075de.0","@material/feature-targeting":"=8.0.0-canary.7bd5075de.0","@material/ripple":"=8.0.0-canary.7bd5075de.0","@material/rtl":"=8.0.0-canary.7bd5075de.0","@material/theme":"=8.0.0-canary.7bd5075de.0","@material/typography":"=8.0.0-canary.7bd5075de.0"},"publishConfig":{"access":"public"},"gitHead":"73c3335df275cf5fb17f3b990df9c4b8184ce3ed","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/73c3335df275cf5fb17f3b990df9c4b8184ce3ed/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.f279e7fc.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-4PQ/ydJp3UV2WRk3RfAd+pWA/ExgkbKdOcFVtnZyhu7zi5cQETAIzuFlHTN7kyhgqN7lQj7hnlTetmqrp3FOPA==","shasum":"37e4d6d12ede94dee604db6ffec13d4dca9afdfe","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.f279e7fc.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLchCRA9TVsSAnZWagAAvU8P/0mkeieLy32TQ43LczKd\nYhbKLI2oyN7EJw2I22ujifwonlJgdyhCRq5JBOskt6EP1Mr8HCha2akNhStm\nhmbBcg+P16OawrkcuMuPreQ7I+xvyAiL3mVTcU4b4OdTj3H5ZU1L0RRPcvCR\n+p7Qs8t2GwDtaUsI0hcwVVd9svRBFRLn0ulF69a77whad4B2lbybxHjLeW2V\ngs+rCCvstphEwLUgvUb7w0A5Lj6bB/h/6majCcRyXP/UAzsnPxHPadYxHoHR\nKSXP9JqJ8eV7bR2lmKSWPLpGhTKqjbMR2QdLzPyd5DD5nCtxz3KzWI92uuPj\nt7i8MCZGc8VNONX9kesd2qnO5N1bK959YwUVbL1iOCvCmBDxkbfc5ibPTVRs\nzAtomccDTcURCgd+MMQTynJNEqu4ERbbEk48Dg67HtDUa28tHbNqk+nRa9Pc\nCNi/asHeH3zskOksrw8zdMzUEHtr10kitP6tKyl5wR/gOTuFSTVAX/4V+Sqh\nfUWuD1fbvQXTmkk90bhbVRGRDhNVhzZuFfx6O0+yeIEUkJpW6UUVq2FmOjRI\n70s28+OAG1Z8WouRzp37iLbJKzRNaxmOQPCxFrHh3rH0fnkXVaQEvD7ddluX\n0gm0r+A9mIHZj5QXXpcj2zddI/rfe4j2lLNG9VXiArYLm8ilOf+yTExbMr7Q\nBpqm\r\n=VnkR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCp2w4vrK2WV6YrNn07hyPCv0YK+S8JBH+lUt0gvMEFBgIgLsSfTyEqOEfr+9eAEftZK6LvlMRM58DVefMBCF+AIhs="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.f279e7fc.0_1595455264732_0.23858703470942544"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.f181e3bc.0":{"name":"@material/mwc-list","version":"0.18.0-canary.f181e3bc.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.7bd5075de.0","@material/list":"=8.0.0-canary.7bd5075de.0","@material/mwc-base":"0.18.0-canary.f181e3bc.0","@material/mwc-checkbox":"0.18.0-canary.f181e3bc.0","@material/mwc-radio":"0.18.0-canary.f181e3bc.0","@material/mwc-ripple":"0.18.0-canary.f181e3bc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.7bd5075de.0","@material/feature-targeting":"=8.0.0-canary.7bd5075de.0","@material/ripple":"=8.0.0-canary.7bd5075de.0","@material/rtl":"=8.0.0-canary.7bd5075de.0","@material/theme":"=8.0.0-canary.7bd5075de.0","@material/typography":"=8.0.0-canary.7bd5075de.0"},"publishConfig":{"access":"public"},"gitHead":"33201638ca11f3c34598273b4ab4ec40bb019951","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33201638ca11f3c34598273b4ab4ec40bb019951/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.f181e3bc.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-1NXOYGSE4OkdRpbge2+Zcmc6mDOIjDjFaZpr8arO5IR58KDljNKzoM5q6Aq3PYuLKlEG7Ncb0nWWmy3tOdGKLA==","shasum":"283f31906ea91c0bf50f580541d5d40f66cdaa03","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.f181e3bc.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGLeYCRA9TVsSAnZWagAAkz0QAKBGnkobxs2uNUgIVNTl\ncLF77/Gk7jbnAOgG7dv/Ej2Svgf4UoWzwKXSznAs6D9ktzef8LH9mpXq10ng\nwO+l0ywmmUioOFKeUQDR9r4t3r1XFYfO6f870g+ypczh8vsJmhuKKe6Ja0JC\nrxcNYRoMFyLTf9zcDQyDiw4RRcVvlDtlrm8bEbfJJNXpCVpV44cVdsbiXD9p\n/mweLrvrc674PLi4x89E+yZwQdt4av2GfgYwLz+vmA+bmbYWfxVRpzYM86BB\nXUDuR2gl2Chs+l0w98Ki6uISHacjOwXtghOB5ccchXT1meF/Auq/JwPF3W2J\nHAs8xw036jj88qOSFTldTvxiDv5SwdiF59jQ2bBZcgqcyPf/ZuvhjaC7zpg5\nI2tydEGfnFf6qHir7q3Y4hX7V2+86290MC8u4EotRyRYBDq53aRmc3O3feYF\nW859pnE7orYVvxTCyBO1t0APSF0+LbVp8WjSqbRS0Pi5tpXOfyIywKXxHY7C\nzOHCqg4lwCNqLQTbEnAtC0MuyPdjktLfkaOkFBjMpwXSLASv2wUqEptIvoef\nPWmPkTZ7mypNhJQrM+kFTADGGIxJrs/16/GsN3atgYr4D6XXFX9/cJ5ICMaa\nZQQqwsbUTSkBfelBu/t+VdfcN97gYZtiteaWoibiwTt1Q7HBfEv08wJWcP+L\nrCNV\r\n=qZLA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1otwOl+98fI7hGI54D/Ng5HKowaxyJXB8TtOo0jM3XQIhAOegmNU0XcrEXvDPdl0xXoityh4b5f7m3Qr6kIEzA+hX"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.f181e3bc.0_1595455384347_0.3604328981929912"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.346a622a.0":{"name":"@material/mwc-list","version":"0.18.0-canary.346a622a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.7bd5075de.0","@material/list":"=8.0.0-canary.7bd5075de.0","@material/mwc-base":"0.18.0-canary.346a622a.0","@material/mwc-checkbox":"0.18.0-canary.346a622a.0","@material/mwc-radio":"0.18.0-canary.346a622a.0","@material/mwc-ripple":"0.18.0-canary.346a622a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.7bd5075de.0","@material/feature-targeting":"=8.0.0-canary.7bd5075de.0","@material/ripple":"=8.0.0-canary.7bd5075de.0","@material/rtl":"=8.0.0-canary.7bd5075de.0","@material/theme":"=8.0.0-canary.7bd5075de.0","@material/typography":"=8.0.0-canary.7bd5075de.0"},"publishConfig":{"access":"public"},"gitHead":"03c5331dce90f41a530d3c8569d87c9569257d13","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/03c5331dce90f41a530d3c8569d87c9569257d13/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.346a622a.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-JwZvEQLGWV5MmUTjpGff6qygE9pZ7A9j0Lgp9oMjauEC6W3Bfj2TnrHcuOkurPBHdLR7Lgk+OdAh7r6Wdu6V6Q==","shasum":"f1f1a2160ca97496b77d50cb1e77dd08bbc6a1f3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.346a622a.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGM5lCRA9TVsSAnZWagAAH/gP/3xTQpxmZpb/1bN1ffBo\nKpSxOeJkgk3+yimu/KP5SL+Jt5LBBH/7/5lV2iVfZl+KWT8YlOkzAgMQugGL\nTZHMzFcWwL4LIEtjcx86u2ofklt0PXfkAD/n97hmzqqQ7ErHz1NBFY0xk077\nkdy9eZ4fiMzwZGVinkoi/EG3vizOo2SQL+m0iAevAAubPDS3cyRoVi/OOYjb\nFwEC0Fq5KAQXrwErkfiRAd9sm08+9hz+lkEhnzBlRIemIIeXzcci529LFZwD\nzxZ4nnMRcjjSioaEqqAkLTuULMio3HaePAQ/wNwOuOhcOik4S0krFVOk16OY\n+/SPlzCfA8TnvmAPo/M/x+00Ved8Ie+dz4S7tgq39NsTIrIiZFBObCpTHHgr\niUS1zQhB9IMppYoKWwZQbAqnrDse5nSt4wY0EvSSqEiGnXsxiDIAN9bmMrPb\nUNtRTVmS+1QHGSOW9gPTt765yyIdCtknSj2LpQjwllFlyZ/4ApgIh40dUVNx\nWXUtDH48tzFbCl/tpdSxDIaFT2KRph3k8T0Xfqr8VSMVD9Bkcwn9D6i3fvSw\nOfYgTc7gYN82u9cYyemoPtgzhkEafdyEE3xv2fut0xf9FuaHbPehOtqK0vNI\nAvNjFdeOlFMq551bzJgUO3BMmd/1sF62R9q3Ahm4rAqsUyMhdpeSzZ2ecCrc\ncEXw\r\n=WMNG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGkHtgUHE2NsmrdM/sgFmLfbjQDgdhA45P9rgvjXL+RcAiEAlCwIN0BU56WuQqD9YpD6sPjP5KnPsj+LMmXCvyDJ/2s="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.346a622a.0_1595461220899_0.3014539975432218"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.c9e8a848.0":{"name":"@material/mwc-list","version":"0.18.0-canary.c9e8a848.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.7bd5075de.0","@material/list":"=8.0.0-canary.7bd5075de.0","@material/mwc-base":"0.18.0-canary.c9e8a848.0","@material/mwc-checkbox":"0.18.0-canary.c9e8a848.0","@material/mwc-radio":"0.18.0-canary.c9e8a848.0","@material/mwc-ripple":"0.18.0-canary.c9e8a848.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.7bd5075de.0","@material/feature-targeting":"=8.0.0-canary.7bd5075de.0","@material/ripple":"=8.0.0-canary.7bd5075de.0","@material/rtl":"=8.0.0-canary.7bd5075de.0","@material/theme":"=8.0.0-canary.7bd5075de.0","@material/typography":"=8.0.0-canary.7bd5075de.0"},"publishConfig":{"access":"public"},"gitHead":"bdd3a24691563386cbeffdb8824ffa26a3c03ba3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/bdd3a24691563386cbeffdb8824ffa26a3c03ba3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.c9e8a848.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-yBhxVpB8XPg+TpSU0vLV2GLfnhI4Zcx7M188ESL9OA5+DVNagDoZCc/M2y8TODkfOloCi/jlOolL8UVowJX3jA==","shasum":"087b9126dd05311463ec0c421d0349e5532e8ca8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.c9e8a848.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGOOXCRA9TVsSAnZWagAAnWQP/1zTCJloXrVZE3D4zfIa\nJyxQnVrD6YaPX+NvZzKPzgdBq7PKn/72VMa+lJX3wqrrLxMDDAs64zKlMigS\nWeYqnt0igmI9JnfOs9+57Qtqrnluq90+U/NYum1nEPwQcRmDQFaoYPjJ/jbr\ngIEnWpa37oY3ojN0WU0lS+dbr8doIz/806ashXbZ5Ry2zadN3sRZ0s4LMli/\nfDz96dY3TmYjrzcmaEA/uvSzYT2mHetP8xiAdA+3fBCsIwhYVmDBkKDt1m3a\nXPl0RdG49nutqq9sLQuL4ewW0PkDfv5/frC9x7cr4tq+pZ6blYf8rIw8gR3K\ntljR3BXFW2yp8Fgq/GIXMiuV+abL9WXalVPlYck0cG4c63DGfw/vR7lo1eUN\nG+VhkfkMP2vsyQX1+6SWLrYFjdN+B8smPQc/5gxYHTcqxT0aGMNqXpbEL4zC\n1N/cAog6rpvnJftfs488cO9+kbRzwUStcxgLX1AC/KW43zwvkp1yW75rWbk4\nEkMKlHSirtTxQDmVOM4YuczlhcYqWng5+szvzIGDuk401jkG7qzKZHiuzGnb\nQ8qL7hoiJOlR1OGrljbV8fr+pryGchgvfHxOVHmWtw+mrq9B4cG7FXCuslEy\nUWvU3z+AA4lv7O8UY4M8Q5mVY37kQofyj/VKZ1Yc7oUbYOaBWtfz4s1+md5q\ni5EU\r\n=qWJ7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAYaQEa4AYz4cGW8MNDCyCSDaRjVUYSe1G3ky+xJfFp+AiEA7wMd9CuDC+dAkmkjcZA+/F5cDKp4Lal+LFsrMXjQuIY="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.c9e8a848.0_1595466647515_0.5928646834091607"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.718c385c.0":{"name":"@material/mwc-list","version":"0.18.0-canary.718c385c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.7bd5075de.0","@material/list":"=8.0.0-canary.7bd5075de.0","@material/mwc-base":"0.18.0-canary.718c385c.0","@material/mwc-checkbox":"0.18.0-canary.718c385c.0","@material/mwc-radio":"0.18.0-canary.718c385c.0","@material/mwc-ripple":"0.18.0-canary.718c385c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.7bd5075de.0","@material/feature-targeting":"=8.0.0-canary.7bd5075de.0","@material/ripple":"=8.0.0-canary.7bd5075de.0","@material/rtl":"=8.0.0-canary.7bd5075de.0","@material/theme":"=8.0.0-canary.7bd5075de.0","@material/typography":"=8.0.0-canary.7bd5075de.0"},"publishConfig":{"access":"public"},"gitHead":"dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dbfbcdf25eee8ad94b581e3e4da50e65b4ebce74/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.718c385c.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-OgxzxeDApGOO62q1YZ/3V6j3NzyPYB+rMcqhvPxk+vifw9R2QzZJbd1GBmRoedraU/9IXQ6gFvxa36OcKF+LgQ==","shasum":"7da9243d94822676addd84a4ec3042fd7a15d3da","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.718c385c.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGe3cCRA9TVsSAnZWagAAQtwP/jCEInADort0SfvkWt2x\nudMlLIaOu+FEy7Bw30Tu8A5sg2X5GJJ+DCoLU1kzTWuD2nncy0hOnaXMIGgQ\nb8fGrisUotsoq1WfHm7ubq4OX7wh2OW5fueV9OahR5aI19Iy0kwuTJizjil2\njZf16KlLCckDg/COl/7zCeDerGGhcR5MI2ZRf5JMacNb0OhwonU8RwNjzmrT\nsT1ER5u7MEaq+X1seklwtnSYE6o62m1ndCyT0R4YaO7iZpXtsrMFWJYsckMW\nTW2QRndSjbVdiQKrIlRf+9ZuO5tBifsNpLXmLZcBXeqj4xIedcRh6RijnedS\nQ0HN5coSR8j4IKopxtv7xvJoXCXeDEJD6nhUnte1/ic+wwfMgNzViMP46O7r\nUNIUaZshkmt4Jy1zuvshXKngKkSLEmttn2DsYFpzihXoMorLPv2GygASN+CA\nwka4LNSoNwEcM+aVkYfJLRD71B0072RS2IMaPQzUqUdG1GpRGJNOQR37/uAa\nDTRxzpesM099TjAl/KV0sSOXaMKcH59FxgQX9GfNX+S7wfE8/1MGtygij/ow\n6sfvNID8z/CkPXjnhcCdWvBOUtdEJHZpMsZU3N1PBzrcYPkB6toxaiZ0sNG+\nGEqjMvli8ESe3+bd6jvY/urd7/EGK1Vq5PhYZowxZHKj8JLC6GdG4LAWkvqI\nbPPX\r\n=+Q/E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEoPjkCqcq8zml9C/KD4hF0WYffvE6l1Qg9dREf54fgIAiB59UQpLwPTmZOLRfOkI2oqfLoJaRMJqVAdgLloLyhDzg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.718c385c.0_1595534812273_0.2992013527203352"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.cd516a27.0":{"name":"@material/mwc-list","version":"0.18.0-canary.cd516a27.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.7bd5075de.0","@material/list":"=8.0.0-canary.7bd5075de.0","@material/mwc-base":"0.18.0-canary.cd516a27.0","@material/mwc-checkbox":"0.18.0-canary.cd516a27.0","@material/mwc-radio":"0.18.0-canary.cd516a27.0","@material/mwc-ripple":"0.18.0-canary.cd516a27.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.7bd5075de.0","@material/feature-targeting":"=8.0.0-canary.7bd5075de.0","@material/ripple":"=8.0.0-canary.7bd5075de.0","@material/rtl":"=8.0.0-canary.7bd5075de.0","@material/theme":"=8.0.0-canary.7bd5075de.0","@material/typography":"=8.0.0-canary.7bd5075de.0"},"publishConfig":{"access":"public"},"gitHead":"e3b4c123ab8be0eaab91697be67dab225c8ea378","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e3b4c123ab8be0eaab91697be67dab225c8ea378/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.cd516a27.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-i+uIFcKxi0uLcHjLtxcDBtmNXP8yEUuIvmtNaq5ze0f13UNFPcMDxx5st6NkEay9zQl395t7V2AmwA8zqGlcCQ==","shasum":"120d3810027dbb1ac5d1f2d735c910bc7b2df14b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.cd516a27.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGzJSCRA9TVsSAnZWagAALh0QAIQwGpzh0L8wG0+OA6Ro\nuTNgNFftA4ZO/muKi1Figc8EXR0IL6u3tosHXO5xi9GktAli5qEPbKhWQzze\n/LFKDcn1dnN10vPgDAoWaq95FNC72UalHNLHYOtlvXqys6XFSdbEpKtC+QUP\nfT7wgC24CKgUt+bk+NqINZym984FxSv0MKEvvUfnXfJ6uZ/YFaG+kItImmnm\n6HiVDQpdioaZhtmVZL/XVaUMD1vRlLYLZkgRsyom5c5/WqvoZkjGT93a1/rG\nWR/nf73RPZswp7Scnv3aTQXK8BeqUq06lf+3S6rW50H4hGmZuMkCkR0BYDni\nTUZzBCqGD2uqePp4t92gOpCpBF7w3p+FvnYdNAajvCMOlUGMeP1lM9jr06hR\nTs0Tfuu/agTHOtEPZiks58fhsxUAUKZuVCw/Mp7ILdNlD8LCKxeAzigX1oGM\nuygrfNbyYSgpqKypqZ/qr6BgcO6RG7ts1S+wfaC1hmYcCzACY/aaLnRCYTXE\nJfmHdgTS3PWPAJdIUagwMjS7/D/qHKVwZx9o3jL+Q3NI+Mom/Cfrgl+q7PEr\n6ko3MJMTQ/q/435ZsvzBs3YNSftcwrc4SdjCNkk628Yb4vwScmLfWfYsMYZY\nHlXl3O31qgsUaD8SicJ4d3jV2t0E5tUqHw6dhsBXXv+XcjcL2BlSA71k4h+u\n3/os\r\n=lZTp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAbRFzizhb45BhBSPbp2zDd8J0GkZa1uLie47cTgBxPFAiEA9NJfjl6G07gJEkocM41SUfRU1gFSJzSZp5vfPCX/hwM="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.cd516a27.0_1595617873649_0.7186132124400728"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.1f082191.0":{"name":"@material/mwc-list","version":"0.18.0-canary.1f082191.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.7bd5075de.0","@material/list":"=8.0.0-canary.7bd5075de.0","@material/mwc-base":"0.18.0-canary.1f082191.0","@material/mwc-checkbox":"0.18.0-canary.1f082191.0","@material/mwc-radio":"0.18.0-canary.1f082191.0","@material/mwc-ripple":"0.18.0-canary.1f082191.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.7bd5075de.0","@material/feature-targeting":"=8.0.0-canary.7bd5075de.0","@material/ripple":"=8.0.0-canary.7bd5075de.0","@material/rtl":"=8.0.0-canary.7bd5075de.0","@material/theme":"=8.0.0-canary.7bd5075de.0","@material/typography":"=8.0.0-canary.7bd5075de.0"},"publishConfig":{"access":"public"},"gitHead":"ac40081dcdf0df5976402e0f1f63b1efef1f945c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/ac40081dcdf0df5976402e0f1f63b1efef1f945c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.1f082191.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-7mGpYiw+2r/zJRthexFphtjapUioo7fkIBZQA9AHBvBnaDN3vLWQ0aKyWF4ZJU6jdZLGQYjyQxym8E5f/CZUBA==","shasum":"01641bcd5603457e9d2b561349f1e34a505cb3eb","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.1f082191.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGzOSCRA9TVsSAnZWagAAU5cP/0ncIf7lwEttun1zB334\nnmmGm0dohtLxT8jgmeIu4u9hQbHz2BqOvY0NK4mbwVs5pDdVM6XkXVglMUJr\nARohv/UocF/70ES9bi3raivZMiQaSa5UODqxiWPN6UEHiIcwQnRexxn+EjR0\n2YbXvb6ZED+J+dwzGZhxLbcUlTY4BXn5O4qtobceBNxcKYE6jQD+feuMP7IN\nbYI5DOaqR8e4JpcTKrsmwset9ehSQQm3bx+POLvaEy5ZByvHZnPxxCmoyS3D\nkUxzmCTuH/D96uKuE5pZOqk8qKme+0m/YQ1G+hSB1uEWACcPdyd+2He3cBqu\ndMiBvaRQEEdOcgUI3epWMfp5xngjatmHIXP+EaxHmpxr6PesW00AAoe/0vbu\n3jfLJQsR54CkFDiSU5zkcokVvbygW3Yubt08F9uci+4GbFKq+MEm3O6Ju+3q\nrOnWfm2FO/OEgk1cFEzaGd8n/O1e9zVHkedOrCIbOev0TwG4fHXDvg6xWBj2\nB55kZemNSdYD6vB80VWs06VeVt2jZfhbuzOwAqwfg6cgSf3ZW4bSrTQ/IyBw\necdfedH6yB2GDTuRB1LCfeeFqJ+xsHYJQG+Bgm4unn0nWOLcikvID0t/01oF\nXP2lQz1XjCwRTKpWB7euUeIkNXWX8XLd6zw/+G4qJYhyHxJLCWAvEdmOkwmp\nB50u\r\n=nwCZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDf4KRgp85zL03XbZu3XQMpM+2peGeZv9Hza+dG9nk6HwIgLLb9SZrVjv8yoqLbT3amJI+k7bYwKeMfI9Ad0Q9wG6Y="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.1f082191.0_1595618193707_0.3800139683585244"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.ea3e82dc.0":{"name":"@material/mwc-list","version":"0.18.0-canary.ea3e82dc.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.7bd5075de.0","@material/list":"=8.0.0-canary.7bd5075de.0","@material/mwc-base":"0.18.0-canary.ea3e82dc.0","@material/mwc-checkbox":"0.18.0-canary.ea3e82dc.0","@material/mwc-radio":"0.18.0-canary.ea3e82dc.0","@material/mwc-ripple":"0.18.0-canary.ea3e82dc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.7bd5075de.0","@material/feature-targeting":"=8.0.0-canary.7bd5075de.0","@material/ripple":"=8.0.0-canary.7bd5075de.0","@material/rtl":"=8.0.0-canary.7bd5075de.0","@material/theme":"=8.0.0-canary.7bd5075de.0","@material/typography":"=8.0.0-canary.7bd5075de.0"},"publishConfig":{"access":"public"},"gitHead":"acc963dd578ca338baf9c6d33a6a341a215c42a4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/acc963dd578ca338baf9c6d33a6a341a215c42a4/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.ea3e82dc.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-QG10laYOWsfrxJEtrJS45g1/kp3xwX+tAryi7DqVAaa3VHDqps39bZ5ThW8kfyr20A20EcFhnATVXKmTDQTD1w==","shasum":"f3b892a8e3e1022155f5a2e8a8bd8954125ca623","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.ea3e82dc.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGzTKCRA9TVsSAnZWagAAwtIP/0L35U1YElavs+IROOsk\nczVRL2M1aCaAJEZyUcTTBKEFX6Su0ukm+VUrHAtH6t0Z93/vPgOI0TmNJQ1r\nxF0JDmFDk+F402XhIjFho78B2jjZn3zegl6WA8W0KOBTy7etO0xi46dZyZOq\nd7YTGMbXIEQTgPrYYOX62RaHk8H63j5H0tGtRfDYyW71kkVpivbkgE7ZOZ2s\nx0N0r2u+eI9bciFbBqo2j3PpiHex0N5t6+H6TI69Ro0PcDOmcgkGrLhbQz3H\ntS/8lGyit+dJSGh/iKrjjOfGIa/598QJEJRzT0JVxZ5UiKWf0IUr5y/J1mpY\ngHwTmNlO6U9kfyySDfrrUAroWg3WnMNLDfSwQtn8q1JKJXXeP1TyuZLuS6by\nt8ESINLZ8cTuYaf+vCzukwqrNyJSwGFGbgRRAbC6OGqyCtsYiXJ/tEWUo31J\nW2NLNkcUVhDS/nQ5tmhh/YI4XBxBa8+OTScwn6DVWT/96KHn7dIbPwIcmU9y\nkNkqkmeb4AEr7j7thR65D4r7wzO3TDRO9pfDXL987Tp4aAEtVo9KD7q2q1MG\nbgtVsC8AD0K2ND37JU61kNAT40Nr2qLF/5E03RcrYtx8g27gYQ60kpdNkXG8\nsxyJ0FGP9V/I20E1OKqKurs28Y657dYgro/kdDJoCtVJBjzY8DAVULYbHwyU\nYeny\r\n=KFtR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICncMCpZP6pyKNaiEDF2W7J6ok1sEI3DsjlOLb0hDMCYAiEAp4aJDPP5xzsPUtLbCBDtTJboA58mxBxrT3aTIY5uWwY="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.ea3e82dc.0_1595618505456_0.8563784619329413"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.94987b64.0":{"name":"@material/mwc-list","version":"0.18.0-canary.94987b64.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.5511e0aeb.0","@material/list":"=8.0.0-canary.5511e0aeb.0","@material/mwc-base":"0.18.0-canary.94987b64.0","@material/mwc-checkbox":"0.18.0-canary.94987b64.0","@material/mwc-radio":"0.18.0-canary.94987b64.0","@material/mwc-ripple":"0.18.0-canary.94987b64.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.5511e0aeb.0","@material/feature-targeting":"=8.0.0-canary.5511e0aeb.0","@material/ripple":"=8.0.0-canary.5511e0aeb.0","@material/rtl":"=8.0.0-canary.5511e0aeb.0","@material/theme":"=8.0.0-canary.5511e0aeb.0","@material/typography":"=8.0.0-canary.5511e0aeb.0"},"publishConfig":{"access":"public"},"gitHead":"53896e3bba08752d5bf8b9c64423a52c96fc448b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53896e3bba08752d5bf8b9c64423a52c96fc448b/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.94987b64.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-Y1hKsNduC/aE/YIuoApI4/bmDYOmyTMMJoHQDWmkSmT/ePWOcDbHKZsYZV8482Soh67CBWP087eA2QCpQl2f6w==","shasum":"c6c672a7d240a5fe4a05973aa1d3bfee823d5fee","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.94987b64.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfG0QPCRA9TVsSAnZWagAAYeMP/iuLlyMrZpEcQKLKMW9Q\nZnJNoEUoNncxJUnc5gdvnCJyrBy+YsuWxjtb8LFokSqjG9SSJWfzaM2HWzAY\nmS7JbBWLw68JlAig0WqAricFPMk2uIudK+zj43rYhmh3VUezTnZWhdElrp9w\n75N31kui/Riij9zGuG9QmusfNy8ojVe830LDoui/JKEy0rP2IMLFAMyHfDuu\nM+z2ItZISLJtW9OL0qMR65NHzbnEQ1bdwhHTcsut6SsIowPWqRP5KBGv57Ru\nprY8gBWDdL6HA5jaZ0sLapkzOo2sQhhZz6a6w0kvcyMLzCLl3B2HePz1ZTqT\nwjxPUJa/85tNq3V3HeeUrjVwcwOYY8ggRrcii2ri6WiyvDrHEwIDt6fs3+D1\nYIsTKpcF0MWN7CchfWvFyCAX0z3nihwF8ZpWwdP+icvBcDGSMJ0p0lLmmGj0\nvW0WXT/hpcD2aDO2qB7k0hDxSL4qw4Z3/ZeN1G4LHGu1gQZOhbwq+IvweP2J\nOwtVQxxt/TAYYthm46KfRBRxa5gP3eOEgSA8eQs3sNrvHmJylMVr259e5dK5\nMZ79FjI2RKST/XcDiLLM5vssd0H74LSUlP+I7s8hIZd9VakfUc5ni2O7cQa/\nE/amqsyHC5OP5LzMFZngwQJ1asO7KyqX3VTOBv1evusqIaRGWYTAgYjiXhta\nwOrp\r\n=X1A+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDClcsB2NmNR36Ga7RmBgXyNAvuxHQzotUWu2/J/ohH5wIhAI3k4f4RmybHt1Kh2c55N33UdbHJcb3TBxGKe3aPQo2D"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.94987b64.0_1595622414515_0.8930159088236524"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.ff49b7e2.0":{"name":"@material/mwc-list","version":"0.18.0-canary.ff49b7e2.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.ac405eae1.0","@material/list":"=8.0.0-canary.ac405eae1.0","@material/mwc-base":"0.18.0-canary.ff49b7e2.0","@material/mwc-checkbox":"0.18.0-canary.ff49b7e2.0","@material/mwc-radio":"0.18.0-canary.ff49b7e2.0","@material/mwc-ripple":"0.18.0-canary.ff49b7e2.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.ac405eae1.0","@material/feature-targeting":"=8.0.0-canary.ac405eae1.0","@material/ripple":"=8.0.0-canary.ac405eae1.0","@material/rtl":"=8.0.0-canary.ac405eae1.0","@material/theme":"=8.0.0-canary.ac405eae1.0","@material/typography":"=8.0.0-canary.ac405eae1.0"},"publishConfig":{"access":"public"},"gitHead":"dfb6845469ead87e451744df01007d8532a7a5ad","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dfb6845469ead87e451744df01007d8532a7a5ad/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.ff49b7e2.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-KlnFmW6nwf9F0fWsDtXJn//FidwV/MPEZjhQH2G4CMPZrsKcg/DGZ5eWr4u2ozL4ZFkXfIcIBaTltV4PdsDEUw==","shasum":"49a707e89febc97951b1c3e87d604ca28503fdd1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.ff49b7e2.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHyVqCRA9TVsSAnZWagAA654P/iizlhrsiM/8KnrGZ1yH\nfGEBnZaK7etDndSXsb8QLcyjxLBxLyYFjDBsnahehgR4aqeYCgpodQW3MUyZ\nZJgiixxPpQTPStzc26vdrCJcOpS+GWp0jXu/RTA0Kzxu53cCQSONItGp3BBC\nWxVJbxF0WSZD1m1BRXgz+Rycz5KsqsB59rsBVSTUQvEgPOb/e9s6yZwG5cAt\ng8uhHqyFmtNwCBUjWi1fH3a7dD20IrrkITxiqSq67CBlwaLqRJNwsWam/KHK\naB3CGj3xESipYSSnMmObVAmmWzbqLz/9vteV3eTM3OctBF7MZDp4FM5WZS5l\n/EGzzq0cLjUuHUt1YhG5ZZwSqssxo4vcpXXypzC9x5vZahFO5mEa7qH1H3AU\nVYv9etzZRYz/+K+nbpS+A7YvJzjbLEkfgjySqjOT4RP4b6KLrxjC/U3avINf\nCC0ZunbQsDMRX01BCwQ9cSJxs5fhS9kh447OLCyZzmbJ5A1Xi+92llI24414\nz7OfD8MriH9dSfanxTRNIAfhSnXiUwcUQLDwl+aKtVAbLLQOVZ1rTUOC0yvV\n2kjf0lJpHZr1htdJHvBhWvBnKKQJBOxpBWiYs5tLp2mS6E55QuEOpWuOn6g4\nnRIRWdz8qSAR9TgQyen2XjKmdQ0KbPQmwdccRBwP3aYJRyLzmwxE2/b+DO9X\naenT\r\n=TOC+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCeUyBzTYXL0ojRIZh+aAc8PCRIiiAb/qFoCmIcIZt0yAIgZKXnRJxWRhW2Fh5InwJ+UJKdzvTNppQ+h4cY1DOtpMk="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.ff49b7e2.0_1595876714526_0.4471464331731987"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.3d334ccc.0":{"name":"@material/mwc-list","version":"0.18.0-canary.3d334ccc.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.ac405eae1.0","@material/list":"=8.0.0-canary.ac405eae1.0","@material/mwc-base":"0.18.0-canary.3d334ccc.0","@material/mwc-checkbox":"0.18.0-canary.3d334ccc.0","@material/mwc-radio":"0.18.0-canary.3d334ccc.0","@material/mwc-ripple":"0.18.0-canary.3d334ccc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.ac405eae1.0","@material/feature-targeting":"=8.0.0-canary.ac405eae1.0","@material/ripple":"=8.0.0-canary.ac405eae1.0","@material/rtl":"=8.0.0-canary.ac405eae1.0","@material/theme":"=8.0.0-canary.ac405eae1.0","@material/typography":"=8.0.0-canary.ac405eae1.0"},"publishConfig":{"access":"public"},"gitHead":"620788b72968e56f9d028ba5ef2ee7d1b4a91488","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/620788b72968e56f9d028ba5ef2ee7d1b4a91488/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.3d334ccc.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-8bZ592oYG4YTpIk2HwFrRYdqoTqcfQ9Yja5tJvgPAZkrGZQYg1Q8cXZSkPTYW5usQBML/zbu4GSs0zxDqHZ+YQ==","shasum":"d33e50c98873d9d3e7ceda1b148fce813e53c883","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.3d334ccc.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIE8qCRA9TVsSAnZWagAAdL0P+QARy+cmOtBq0BSBlpkC\nWLF2KF7S12fSlNwYlKEfC2QH62QUQMtbZhLTbZsBRBnV/dnJh1kJ5fDC2Hg0\nTEcKKBfwSqr1uetb1kWE9zR98APFH5Y0Bzr76lPyhTkVKPmmHE47NAEhlX0f\n80QSSpypMbitRye8jXZK84Y+sOAe1H+8rSjQdG59Uqyivm2Y4cf1Yi9NsUe5\na8sLiIeGqhhRfo3UnOsn1bOklQ35dzrQrUEUoLNQLwK6FcGp+Tr9ZPOeVYgJ\n72l2X30Cng10wljbPBietQm3GnUBRMPoixLA7pjivNhQd7WdU/ZZ8DblvLMg\ne83L7U8XuxSiSeCUwlO3YoSV5BgINtOKw/GUeXMHgvsYFIX7Aoxr8k24FG1b\nMpBgjiYgPd38LediypfJ7M+CV35ckmyf5+bzQMQYMlq/pm92+yl9L65PqKN6\ns4RQqnrkDMNxc3CBiTMg60O/xRJKzquLses57qACiP0Sg8zWW9EgMShf4HSi\njzUgfku6lG362syb6uN+YoSu31Z40BKmxheiMPlvqVV07+W9IlLcGNT+DhuR\ni+7Ib+4jSyPvkS1eqEkNeuZpDMxLUr3vKilgj9XaD6vn7jveSiqA+m9Rm+zr\nJW5foweL0X9MPfim8mCd5jshGl0OwPiUKz8giWJVChyQTBwyfzu/GPzZ5ymk\n7RLq\r\n=8y3s\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyCpzLGQZIcMyTvU4aAGtlCURHIMBPapq1rQXVDan7PgIgde7r8sLTPPcg1E/w5QlNgpCb2Q2jQocpVSBOE9hDQCk="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.3d334ccc.0_1595952937800_0.265454874002248"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.82ac569e.0":{"name":"@material/mwc-list","version":"0.18.0-canary.82ac569e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.f86f83f54.0","@material/list":"=8.0.0-canary.f86f83f54.0","@material/mwc-base":"0.18.0-canary.82ac569e.0","@material/mwc-checkbox":"0.18.0-canary.82ac569e.0","@material/mwc-radio":"0.18.0-canary.82ac569e.0","@material/mwc-ripple":"0.18.0-canary.82ac569e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.f86f83f54.0","@material/feature-targeting":"=8.0.0-canary.f86f83f54.0","@material/ripple":"=8.0.0-canary.f86f83f54.0","@material/rtl":"=8.0.0-canary.f86f83f54.0","@material/theme":"=8.0.0-canary.f86f83f54.0","@material/typography":"=8.0.0-canary.f86f83f54.0"},"publishConfig":{"access":"public"},"gitHead":"0082732bc61fddf6b3c8f7d114839f1937e7d1e3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0082732bc61fddf6b3c8f7d114839f1937e7d1e3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.82ac569e.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-eHrfQtpKzS1BD3ny/39Qe4iUjC6FY81ZBPXuA3zbKrUkBt60oa3ohdzAFUvv6mnJ6XKzZUMJPSeVlxYuWKB3ew==","shasum":"667304054555602fc775bfc36859f29ae130b3a7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.82ac569e.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIHGpCRA9TVsSAnZWagAAZzsP/RosHJ8JBS2M7ckAwZX3\nTv6xonhjj/S2HcNPQXMXv0IRtCl/JZS0SfJcaUxhAVO6IKKe4YCRHmjW8wFA\nZirY0w8+YPLbp88PGOCBcAXf51MFvHFghU398vMHFVbiH++0yO9tKeXjgZ8g\nPZTZtoee0L7gvjUmKrIasGa7+F6AckjtHaYidxUux/22lqVjOruw1wLSWXN/\n4yPlWW8CYRH5mg5VectT8YDCXQrSZjH+UW0vJForYzIes/2qQQnBDLYMaZCO\n8x5q2OZ7ZwIyec3fa6ZetBawSMPtGqQj8ZLiueSqDLCuRa2AaC/JNTS9KOiZ\nGOTyxh1Puvl2Lh6R4JE7aitpsTwlcoqB0TJmPU/OR8cM3kK7gEKjewnp/kpg\nIXENAUVk0Bc5Cg+BMHj456sRTfNbiBuVraaH2WuzTVIKXDJYU4Jo/0lSUT2X\nptWS4QIpy00JvQSyDdLQ/P1DaTRQXHMYIX8t9Bc8QkU0pZ2PnRfvOPBcPz8F\nxHKfBZ3B6eIjGq+pi2shX4r/raKr2PuD3/c69RsUQlBsNmsUBsjzmooKrMLt\n/fmD3BBAT9ATsciNyb/3m2Gh9WR8W0a+05KJcs49Y0YhI4knw5U96xYujiZI\n3bD3YEPca7id/iBzMiDCCQQd2ZBW98KULcH+P/cVEY8ioAKOjn5WCadJBiXE\naHzF\r\n=UUY2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDb2fH7+DDgY7lQQDD5dXJfDwXyp9vzSKdGj+hiRw1+tgIgO7Noq0OyUn/jIcmu8GD5d+j/FBw93PnHH/Ql2CAYbPI="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.82ac569e.0_1595961768903_0.36951072417982767"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.99df7397.0":{"name":"@material/mwc-list","version":"0.18.0-canary.99df7397.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.f86f83f54.0","@material/list":"=8.0.0-canary.f86f83f54.0","@material/mwc-base":"0.18.0-canary.99df7397.0","@material/mwc-checkbox":"0.18.0-canary.99df7397.0","@material/mwc-radio":"0.18.0-canary.99df7397.0","@material/mwc-ripple":"0.18.0-canary.99df7397.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.f86f83f54.0","@material/feature-targeting":"=8.0.0-canary.f86f83f54.0","@material/ripple":"=8.0.0-canary.f86f83f54.0","@material/rtl":"=8.0.0-canary.f86f83f54.0","@material/theme":"=8.0.0-canary.f86f83f54.0","@material/typography":"=8.0.0-canary.f86f83f54.0"},"publishConfig":{"access":"public"},"gitHead":"e236d384d23fb84c6f0db97495a598e8b374ef26","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e236d384d23fb84c6f0db97495a598e8b374ef26/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.99df7397.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-HYpFsMxkV9fG0PCrz0wka3UVa53xzms0Os2hervw+nyjjxcsC+j/CNW8vkdtIHgK6jivpshyGPR/VA/iYtzX9A==","shasum":"cff7d24478f53dd2a59833673c69e936b9e551fe","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.99df7397.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIOG6CRA9TVsSAnZWagAApQoQAIaRh4/YLq94hEj01aMm\nsVVWPPVx7d//CAM/UVqzqdbx3YnyVWzIXSivLjuCHKVc80jl6/AtpsNM7v5a\njL+ZWKwJD9iBMT4yVya+p315vk/ThPoTN1HcCIJCaNp4ZzM+5ZQ4j7bRCcEo\nIojOvqq/zbxWFxb7liSLnrjfs8h2IUul0tvZRV9ATGhdZCbcDNtwcdThWgFw\nDyoAfgF3ZG8pLLyIMAYAGwOoTwZPXTdp7HYP6omUlT6/gIlcOsbEMuJKXflo\nu35FLsfVkJr8vBR/EE2UMzh0o8/Vo7PsUHltysay+zZCZtxclS1jPcWI3xVD\n9KSQiNEPvvVIYynthAi0k69yFJWEu30qqWQdoSUi/yLWphjE1qNLKrfPjMIl\nvTalrx5UBw8GjTe7JHP3k3WUYnrO5P1xoLsiGIYccitSAGDpNV3hl0ONip0O\nNVD0x5bFqbVrndDWbuRjxkbD4WtPABy/WbooPJQlWIwgWDYcsVH9Yd+9Jnti\nho4oOzjGtgr/YBbR0UD5OQcra5BsZzlzHOw9D3X4CsvnVN7hHIyJG8+aIK1z\nYCpDt6MH//CiNRsQAkjhVLnKWiKyQ3vc6o+U8kz7ZqvvIUu8tw/BwgeTlfiK\nzNZLsrmF4ak9C1dO0ZQvfv8iX+K81lmT37vKy+A+nxu2hU7PG6mbK166w3pk\ntbq/\r\n=RVVB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCHycQVctFp/pvXMqSQRVQvMyQ7nIDAKfMnjlcwP/71VICID1DANaqelreq8GsDcDsZmmT4G2hzaEeTZp+PzZTH8CS"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.99df7397.0_1595990458228_0.2414917094218516"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.45493e05.0":{"name":"@material/mwc-list","version":"0.18.0-canary.45493e05.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.f86f83f54.0","@material/list":"=8.0.0-canary.f86f83f54.0","@material/mwc-base":"0.18.0-canary.45493e05.0","@material/mwc-checkbox":"0.18.0-canary.45493e05.0","@material/mwc-radio":"0.18.0-canary.45493e05.0","@material/mwc-ripple":"0.18.0-canary.45493e05.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.f86f83f54.0","@material/feature-targeting":"=8.0.0-canary.f86f83f54.0","@material/ripple":"=8.0.0-canary.f86f83f54.0","@material/rtl":"=8.0.0-canary.f86f83f54.0","@material/theme":"=8.0.0-canary.f86f83f54.0","@material/typography":"=8.0.0-canary.f86f83f54.0"},"publishConfig":{"access":"public"},"gitHead":"8423dd01198986c553ae23227667bc8148bb4276","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/8423dd01198986c553ae23227667bc8148bb4276/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.45493e05.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-OBI3vf4mHNgmP+vo/rkVo7wc8fY7b5XhK+tVDVb4CUjbGhAsR+s3L4ybL5bHUb6jenvHVRvV2Duz0SumrqW5Ig==","shasum":"e6c45be91d3ce004cbf8c0d535d678ce9b53b83e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.45493e05.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIa8NCRA9TVsSAnZWagAAmUgQAIKvmh36RHhHwDsyM6rw\ntZOYeZv5GIhUiPil4h79BIUULQrh0WBukNeAA6aHB+4oukRyZWzipBcN3QZq\nQj/DjxbdxBqGqAaiNbcGT7kiayu+WQwVdIQ+hnMlPM5fjo4oMFnSgboBmVl6\nsmZP4C3nvFnPaZejY1Bu0vjob9Amu9LLiZejIBBYmNs6Fun7+AOIf1YXQUJi\nGWloMccRJg+zp9LhzsUlmrd6xsdLVOG+uLaDpEedhK3BESSXhjh3opQ+0Hr2\nXa2FVAWrn5ZqCZLCCptDRZX/WGduvHher9YTOutD5qcLQMYMmwM3vscuVXn8\n+QxCvA/mCzoehr71gPg0Q782GrvCLMifeYxYoT6KcqO5z5J4P3YZvW2Oc18p\n92cGCWrBPwMlqEB2xabMfuUJHZbu3bkB73aCe30N7/SMHw07dQr8i9W5to3U\nWs8+l5P+a4z65WB9fUd0sca90RP10TBsRTPoNnbpwyIWfq7iyJSCEx7uY5Yl\nX6ZLPIg6DD6NgHFBDFDbOzLSl5So4B2lpHLDvdjk/KCALWlsmOavjbQiwwRg\no4giBUcdiGk+SykbRuZPgayoC4BZB0xNA4bW1Ko9Xs2rA3i7NGy95xuAJQj/\nZoqgPXQx59qQWtooCKfdYVFWlU+aXmB4otmVHyJsbWqqrDv3O5VfYil/fk4y\nbj36\r\n=T1sw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpyze1OgG1dA6uMBe+ASoYFesC109zyHbw+ekbljW0ZwIhAKUZkEfLVQYCmVmr3nTjFocR561c56bR5oDOxElu9J6S"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.45493e05.0_1596043020783_0.98627398306954"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.f2ab0a95.0":{"name":"@material/mwc-list","version":"0.18.0-canary.f2ab0a95.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.f86f83f54.0","@material/list":"=8.0.0-canary.f86f83f54.0","@material/mwc-base":"0.18.0-canary.f2ab0a95.0","@material/mwc-checkbox":"0.18.0-canary.f2ab0a95.0","@material/mwc-radio":"0.18.0-canary.f2ab0a95.0","@material/mwc-ripple":"0.18.0-canary.f2ab0a95.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.f86f83f54.0","@material/feature-targeting":"=8.0.0-canary.f86f83f54.0","@material/ripple":"=8.0.0-canary.f86f83f54.0","@material/rtl":"=8.0.0-canary.f86f83f54.0","@material/theme":"=8.0.0-canary.f86f83f54.0","@material/typography":"=8.0.0-canary.f86f83f54.0"},"publishConfig":{"access":"public"},"gitHead":"1009e1c7d365921dcbc3071cabaa20c5e21e65e8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1009e1c7d365921dcbc3071cabaa20c5e21e65e8/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.f2ab0a95.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-NMOH3XBwNLsGx2KIOBdX+j6rOl6Ou5uA0uUqkk0AOm+XaCUU8PaAgNFaxlpUmbKkUU3K9Pj3C/Jv/gnLgJ2/SA==","shasum":"d79b5fe41e2ae0b4645d4212068117d3ceaec948","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.f2ab0a95.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIbAxCRA9TVsSAnZWagAA7bMQAIcvvTXNMtiil0rv2DDn\n98ecyiTEVf07Eqv1+AMvDIwDzxIk0If1ykpf8mLlOkadg+mFwrk+jMocSARv\nDDLwtrwPiOGGsN4DLUv+0fAjtH90leEpLcYKrdfq36CzOQI7g88aPZqaR5g+\nZMzdYLDQ5k9L76XFYijMlk4jHzurY1AocPZdmGh/043PouPPw8axOk6vxdI9\n6m8At9dvBYJwO9P16K1x8SSLmJkAKXsq3BoSI262MlCSdCotBlAR1gNJWQ/8\nnXyH4P92Sa2noMT7TerQARbURBbjBx/4ZhnbrS6MIQA7MNselzAMxg0SCbel\nxCA5+UE44eH3tYDxtLPDmqEDgV0hstj4U1xzNhTyDDNHmvjc+9u5pR8gda/Q\nV4o6mL35ORoUcCufgSvF7EqksR3K7SSLHW3jA6S7x9uZRl19moN7jca7Zk8b\nUunq4nAmUKY3lX5DdgVWs4uav2OOlSJJa0tjoYViW9MIGguYlPagVzHG4jjr\nYrEo9bgU0skIqLSXz6qzeVmMHQaaccvJewFKFO/wuug2Rptm/V1Aj/GvS8wY\nZ9lvn2pOXZ9Z6i7nT9GrZt871jS8kjhkiaociPk9i0RM3oRLmsMy4cmYJrG8\n03O9hmkD7s70XRILDzqT8DNCGkmBYqGK8/M2cYIWgRCJAem8aaSEBCGV/7Po\nxIs9\r\n=uV4G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA3/40DYlJFI64vKoMp6Plw4X3vmBjhVtj4NpSkxxYESAiEAm0CQnFWhZJzD/UbAMZlfEpCA9s4a1QyvFjN5VOKY3ss="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.f2ab0a95.0_1596043313410_0.2739817016146744"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.45f9eddc.0":{"name":"@material/mwc-list","version":"0.18.0-canary.45f9eddc.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.f86f83f54.0","@material/list":"=8.0.0-canary.f86f83f54.0","@material/mwc-base":"0.18.0-canary.45f9eddc.0","@material/mwc-checkbox":"0.18.0-canary.45f9eddc.0","@material/mwc-radio":"0.18.0-canary.45f9eddc.0","@material/mwc-ripple":"0.18.0-canary.45f9eddc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.f86f83f54.0","@material/feature-targeting":"=8.0.0-canary.f86f83f54.0","@material/ripple":"=8.0.0-canary.f86f83f54.0","@material/rtl":"=8.0.0-canary.f86f83f54.0","@material/theme":"=8.0.0-canary.f86f83f54.0","@material/typography":"=8.0.0-canary.f86f83f54.0"},"publishConfig":{"access":"public"},"gitHead":"1cb46e993882c87c3cced22481410b4922c1e1cc","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/1cb46e993882c87c3cced22481410b4922c1e1cc/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.45f9eddc.0","_nodeVersion":"10.21.0","_npmVersion":"lerna/3.20.2/node@v10.21.0+x64 (linux)","dist":{"integrity":"sha512-QCiYwoywaKU1ETs51LOwXSyVJm/jLXRmHk01WEoNvMIb/A9zToefsfjBhSQTlBakwp/9ZMz/iXfKKy5c5t9SAQ==","shasum":"cb32dfaf6a677009b1644ae6acbe962c97b8ebf5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.45f9eddc.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIhpyCRA9TVsSAnZWagAANLMP/3ybtoTjHx4fVYwMpqdH\nvXpb4lopn3tJtzZgMwhaO+mVpycIo3GB90WlLJjZ1jtpt4kF2ManSdH1YaDr\nMcPtWrmQoKWF1BnFWm4llogZ/irQpvtUOV+sY9b0gEmF1MG/3Pcod03lxpzD\nRNI1ccnG76eUnvcE1yz/pTbY7vvkph8c/JCae+r8hi4zp/7LqHzzNPwIhO1n\nDMJkmaypKl+UJjx2uN15Vs/MhFAONrS2MLnKQVF766ixtGAIytn0+pOkZyDq\nnPEjMqrwX0vEM2GPOxoLtk9Za4vkh3gNtgOJyiPYBP+VbXmdgNRtAAqNPLu0\n2yagpqDN3kLybHBg1WeEX5k6gax8WE1NhV2Wo+/ULJwLS5Ii1AQZAyRHHcIg\ntMHkeGtdLFjwBsq57BrDvNtpOQG2tihV9POVnx3jHIbbR7XFTk0C4kT8hZTo\nkJu3oy/yIXM2B0/tK7SNqmsjI9sKvThPWPnxLp7oy4XRvcRHDsXG5QQ460VG\ngASan7aLALyte1jvc5gavu40BEtZxE8I57zRuHm8vl93wt12lfmE+epaTIO2\nN25GvgvVRgDGXTKwA4cJqIb4HDUnSkM+xs8xOyyaEKNRfWCeTMlJFI49xeCE\naaNP6SJ6JMQbAxnN0gK4fQ7wKt+TnperqmbZp8yFMu1AoWCvZ5pRdiNnP9zv\nCTzV\r\n=eJRc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBH/nbZGNGosULYs6eqkuv/9zUNrk7uKT2EK1jWV/DTCAiB2GARVsVUG4xrxXvqBWXkEPERNt6p9281BmdCSLHQMAA=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.45f9eddc.0_1596070514381_0.8401836225680095"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.b64663ea.0":{"name":"@material/mwc-list","version":"0.18.0-canary.b64663ea.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.f86f83f54.0","@material/list":"=8.0.0-canary.f86f83f54.0","@material/mwc-base":"0.18.0-canary.b64663ea.0","@material/mwc-checkbox":"0.18.0-canary.b64663ea.0","@material/mwc-radio":"0.18.0-canary.b64663ea.0","@material/mwc-ripple":"0.18.0-canary.b64663ea.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.f86f83f54.0","@material/feature-targeting":"=8.0.0-canary.f86f83f54.0","@material/ripple":"=8.0.0-canary.f86f83f54.0","@material/rtl":"=8.0.0-canary.f86f83f54.0","@material/theme":"=8.0.0-canary.f86f83f54.0","@material/typography":"=8.0.0-canary.f86f83f54.0"},"publishConfig":{"access":"public"},"gitHead":"18456f1bd35a7bed64d6ca9d3d408d9d62d59c90","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/18456f1bd35a7bed64d6ca9d3d408d9d62d59c90/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.b64663ea.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-rmUZdQzACA0y33Ur9rAeAm5zqiCB+0JPYJv4cMN2FvDDBh2fR6GZDtCwCYpO65rdCMQxTJ0MEc32i3jQz30g7A==","shasum":"39111a51e86e45e2112d74c80254bb68fcc54cf6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.b64663ea.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIwbICRA9TVsSAnZWagAAOCUQAKL5FcJIsD+ybULSC0Z0\n2OrQXusQwbaMJlL2HEFOfMvcHbeumVrURVlG/Zi9aDijuvOAlrQctMQXuAj7\naDF4ANcaTnF18PwI2UAQQsT1VLUjpMzrwrggFJpq0ODSdQ3kJH73UplCTxIW\njAy5AgR32DnfnpJ09Tx/60aB94mp5XG0DQChVSRHaqteJIRpuKXJ6wnwWdZ+\nei4Lz2aBveoqaeLb985lJjyWefcNMJ07ARqVLM8fE4DZk2rfgK/X9StPrTJX\nYHPcp0IxZSEK4FkDycbY6V2udE8xfkTCP/E4uSlpa03ANp3Uo6Cz+UBUGsG/\nqyJNIYpyzS1Ww7LEfEewvjrRHo46y1pnW6wExBh3meyhd1J65JRfSf7dhiON\n7DhcK6NsKAc1/moVb9baJGUETU/A1O7UxtVsd0TpRanj2gPznMt72gg11KO0\nrxYswy3oRCqJcEJmbqT8kgerW+910oywfZCK04oNlQk0vk082MIckvaYACZ6\nWZDRN9GrBuzFJl0w10ZMa0lnf6h82KD5JR52gU63y84Zef1+T4fGsuMCSnCd\nA+hBZps9v0EizhNJDswQygrWAEEpsOPmdIiNSYujSH5wQbQu2AyF/ocDlmEx\nWYCMSfrPDlopHSOT51HcLNtQTZRX/P7ETr68txyn2NTfTUFNqEcVmEIdTUSe\nvtSY\r\n=wVxC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICeWIouNC1XO+rQig8Ot6yvGExXzV0qO8iEcTfcZ/ek+AiADqeX89zxcsiYb7cz192UCimiA12mHhfYjfiLtIckTSA=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.b64663ea.0_1596131016077_0.9228944468438163"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.9a1a4d2d.0":{"name":"@material/mwc-list","version":"0.18.0-canary.9a1a4d2d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.f86f83f54.0","@material/list":"=8.0.0-canary.f86f83f54.0","@material/mwc-base":"0.18.0-canary.9a1a4d2d.0","@material/mwc-checkbox":"0.18.0-canary.9a1a4d2d.0","@material/mwc-radio":"0.18.0-canary.9a1a4d2d.0","@material/mwc-ripple":"0.18.0-canary.9a1a4d2d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.f86f83f54.0","@material/feature-targeting":"=8.0.0-canary.f86f83f54.0","@material/ripple":"=8.0.0-canary.f86f83f54.0","@material/rtl":"=8.0.0-canary.f86f83f54.0","@material/theme":"=8.0.0-canary.f86f83f54.0","@material/typography":"=8.0.0-canary.f86f83f54.0"},"publishConfig":{"access":"public"},"gitHead":"f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f3382a4c5be4b9d21268b2d1b0831f8d8343d2c6/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.9a1a4d2d.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-xNDYtNm6dVVZTyADLw5CE6YrRdcMlMfvw76Q6XKnZfGNKofngacp8jL11wiOnh4HB7Ou9yVcSmrP95QJ1d1cKg==","shasum":"29aa238cc443136c6e738411046c28f4a1ef8371","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.9a1a4d2d.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfIzXrCRA9TVsSAnZWagAAUV4P/jUZTl1us+DRGNHw9d1k\nsjbbL0T4XMIBPjBaqnRCzyzaIQCqReGIfNbMRDWXpDMadM/vrCuQxcHElAXk\nBBRxnot2HED4TOPMwQVM0uctqae7mdUFgc493CXZg0M+DBEBAqORereHtQh3\n0nw2hXVYAh5tejJp/UUXvW9CMV3eSIPOFgqnfPKRQNtgDVhnELE6541aL5+l\nlRtXvqYx7uqKncO9z5aiX97WBx0wO0Ehw54YB7ev0pmZzhZwE0C8JwS3W0C+\nLdzJZkHqN/DyUdCtthYyq0b8H+LWQASRTwPDiRwYL9P6ii4IYC+5nqiYfRgy\nXHpONQvfuTCt+iHXiELi5ll+xaGFKBbe89FPTGxWTbbWbuUDfwpXv5/m+k2D\nW5n83NKNOpsMBO6Iog3asbvGzw6pI8aHHQ+4wtAazvPokbdMOX6D7TBt+HhG\n0fEwzBPzrAusyK2P+E72RhhAdubcqKx7rr5CBZWQD1UFgVlCAUHpdva35iZ0\ns46vyocyyoPncOA9vZWvU16Eczt3hWkShvqaoEkgM7Q3hTMKczyFcn4wOqpN\n6McvQZ2gkDRqfn/IX0bgAKqe9zzC7Sxz9xTEUObsisNr7N5nP71JXoLjp+EC\nuTgUYcVh4hGHcXq61dE0FDEpi4EiGWerpEyERoabRKonv9329HjnyM1VthdG\nJks2\r\n=JZcc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCscJKu0TRxHYquGr2NJp4MS3m8rJCXsnEZk/JRSVB8JgIhAOheQfwewatrPOQoSiIQy9clegh11oqjb7+8unZcW+kf"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.9a1a4d2d.0_1596143082392_0.23824068692369438"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.887c2848.0":{"name":"@material/mwc-list","version":"0.18.0-canary.887c2848.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.74839da7b.0","@material/list":"=8.0.0-canary.74839da7b.0","@material/mwc-base":"0.18.0-canary.887c2848.0","@material/mwc-checkbox":"0.18.0-canary.887c2848.0","@material/mwc-radio":"0.18.0-canary.887c2848.0","@material/mwc-ripple":"0.18.0-canary.887c2848.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.74839da7b.0","@material/feature-targeting":"=8.0.0-canary.74839da7b.0","@material/ripple":"=8.0.0-canary.74839da7b.0","@material/rtl":"=8.0.0-canary.74839da7b.0","@material/theme":"=8.0.0-canary.74839da7b.0","@material/typography":"=8.0.0-canary.74839da7b.0"},"publishConfig":{"access":"public"},"gitHead":"2da757768e8d58aa4885027c78c58f8515382305","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2da757768e8d58aa4885027c78c58f8515382305/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.887c2848.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-mdbgyNe6ehfnpvmxKsHuc/bngAMwcSsPhRawoBcfRb7HKOEZcpe2ngf2hE3hsYamTwkgkWHnL42om/1TAl7wcA==","shasum":"dde14f522374f6820397491f3e3be5125d10423c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.887c2848.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfI0RKCRA9TVsSAnZWagAAcY8P/1bAX5uIBv4dSEum5HiJ\nyPCQ937T1gfw4FVG/tRQCt43gxYSG1jQnd96WLbhYc0njQ92E1vwdF3hFTSX\n6p5wjhKV6tTHb4osLyviv5yXKitWh+ylveQ+5BiG840mhdnEe95ggORvbUWW\nDDomudLDfi78xTbfC1VhE43393YOoJw+X/3RfVVzyhmLlSqlYG32dbAbZra1\nifvSxHVy+X0YT1tAFyTEd636+UIdrJFiOvyRKLVl/QC1EfMLZNifI6sIYHeI\n71sJrGcz5KJQxVGcGJTzno8kmzyXI7u3z1psDQVwYlktgxiWrUyxvsVdrC5n\nzEGAzgtNBBpwkOkLKZpUXg3Hqlku007ee2V2NvHcq69gEU3ARB23DFGV6xOu\nFBI4sbFww6OGpbmIkp5qg11UFNfZaNKIsvz8YUC29uIB5rWHIre2PRmUxkqq\nSLBIJ/tHkGQCLwIE7C6m6dMrD9TBjRvR3FvKLq8GmN8hhc/JGE/Szz7mZf8d\n9vBZQ3fVY8EOoi3o7XDxw0hO7+WquzFThQ+tlfopukNsmFSvuvcrAQ2/029V\nCCOF461+L0vCpncw4LSe+oYUxmMyKi1goi+3lk8N9RaRddDzlkd5s89Tm0el\nRZNY/+zuGf5ztNfrziAJaIfv+DS3UH1Zkp9JFNrhdi1cDutRw22YyrbElC9U\nbePj\r\n=Cz5y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiMVGAFomG+I3jZSwkRQne1g4bczkk1ycDfslZtvnjOQIgOGrSQ+Rz04e9jShsU8XXTKLGsNQbFRjv1XTcHyRVq/M="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.887c2848.0_1596146761499_0.630090760195853"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.354eb695.0":{"name":"@material/mwc-list","version":"0.18.0-canary.354eb695.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.74839da7b.0","@material/list":"=8.0.0-canary.74839da7b.0","@material/mwc-base":"0.18.0-canary.354eb695.0","@material/mwc-checkbox":"0.18.0-canary.354eb695.0","@material/mwc-radio":"0.18.0-canary.354eb695.0","@material/mwc-ripple":"0.18.0-canary.354eb695.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.74839da7b.0","@material/feature-targeting":"=8.0.0-canary.74839da7b.0","@material/ripple":"=8.0.0-canary.74839da7b.0","@material/rtl":"=8.0.0-canary.74839da7b.0","@material/theme":"=8.0.0-canary.74839da7b.0","@material/typography":"=8.0.0-canary.74839da7b.0"},"publishConfig":{"access":"public"},"gitHead":"75cc944c1c31dc88606fa2007d002743354e601f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/75cc944c1c31dc88606fa2007d002743354e601f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.354eb695.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-DYmXFPIr4n+xrNFphaBUnPEuOt8CI/FK0jg5c/V7gzzrbOwLaKWNRyiyddsKd7JK2IARzwEdaBM481IpgEu9iw==","shasum":"38e3c77ba1d30f7b98d2dd62fa6b10fceca39158","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.354eb695.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfI16ZCRA9TVsSAnZWagAAr5EP/j9amsnnlWCWbvmqerib\nkpfCUSMEx/Nc3D+eJWHUeO4jLNFSQrIazYLovDV01tG5DW+Jxx5p257ngWhW\nBbfg9aIKIXqmgxmzTcNMLHeJeUG0ls6rsexz58JZNO//PisfgHwrV3Xrhuc5\nVOeQLC3BDYaICna5Wj+P2YxhW+FT4eCzxy+g1wJPbwB8CRm7wj62X6fPqA57\nuQRNEjSsE4XY/WKBkJ0ACgZdxkVsGcirOrXkusp92wVy40ej4Iw0RcpUyh3l\nq5N9d9HMRJGMg7mN5SYDudhEmqNiqcZZj1y01taJklTvs9CNInwz1QVCNyql\n/oBsX/XHNCpLIuemFd0r0ocKD1xypfLGYf5sADNXKfu0UHJMD7lB6rq4wLTp\nKhCjm5+IPFevnJ/aTeEjcr0VLcqHZTfm6fHbbHo7uC8Q1mQEL9CyWoWiPb9x\nVx14YJuAsrL8gI6NyvFbEt9oa6H3m/4MZjkdtpzD1N/S6qqVHTSMmBdbcp/K\nobm7v575rIonFPT6n7Eannlb9RXvlnCDhQwb4sbmUJiN9K9GsJF/Pt0DVJWk\n8mrhNL0e99/yxmnqdY4oeQiuvseBP63YXIIBaptMN9OrkMO8Q1FbuLLgZ6+A\nlP5rQt0ZK1Aet8/32ONZjfWe0vVev6E31JLJwPZLCYsPauo5LkzUZikSO8o4\nVru2\r\n=mis4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDm9ZJp7DrZsYyM/5AFVHUsfxgBr8tJQrJMNZrtE5yn3QIgNwTVN+wfBUxWj8+vi/PXe57oj+8iutcxaLRWFsnS228="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.354eb695.0_1596153497501_0.30596190893109343"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.7beb236c.0":{"name":"@material/mwc-list","version":"0.18.0-canary.7beb236c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.74839da7b.0","@material/list":"=8.0.0-canary.74839da7b.0","@material/mwc-base":"0.18.0-canary.7beb236c.0","@material/mwc-checkbox":"0.18.0-canary.7beb236c.0","@material/mwc-radio":"0.18.0-canary.7beb236c.0","@material/mwc-ripple":"0.18.0-canary.7beb236c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.74839da7b.0","@material/feature-targeting":"=8.0.0-canary.74839da7b.0","@material/ripple":"=8.0.0-canary.74839da7b.0","@material/rtl":"=8.0.0-canary.74839da7b.0","@material/theme":"=8.0.0-canary.74839da7b.0","@material/typography":"=8.0.0-canary.74839da7b.0"},"publishConfig":{"access":"public"},"gitHead":"9cb1508b49b8ccba6072341f23bae1ac67078621","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9cb1508b49b8ccba6072341f23bae1ac67078621/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.7beb236c.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-heqyKc/+4Ih6/IVBKrM9BTl9y0so2d9wpCqr0ssBHo2zjZ7F5LKPA1gQZ1/IuiIO5MElETmjsdnc8aH/iEBT0Q==","shasum":"fa68d99475bfe9869fda3048f2082ed0c01b7be6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.7beb236c.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJFepCRA9TVsSAnZWagAAh0gP/2G6gYp7XhhRs4H1ZSBN\nnm05Ru6oTZpw5X4Aev/DjBONMA7IwNiFUQGWAET/rogyIvL2BE6L56xucSoQ\nwWalrOyH6fCH8I4hzf1V8fHT4xdFQ41NZM2oE2DfqOty1Rz3xTgnKOmrWEaf\n7QDbOwXjiKtolNHniFVdmXP4hGJaKmmbBDScYLtK14+vH7OPzZ8E/g5bcc1I\nIe+a95pcDSpU5MD153fBfL2VIilkfZT8oyxj2c7IZD0jzG9SnPg+EBgfI7XU\ntp9rgQaQQB+kgytHT8ebzaVxC9jc99iNhoaAcSmSpsvXBW/nuKCFEc9ou5yC\nQmqH0db2m38Pm3yOscji1l2Tf0khnk6IF/Idj+jJF6w7BmkCODBpjIj1ZMq1\nb3+NH+iXn61vCRYJDkJ4VhaQET6JzC9NaE0J64kmbBawsu825Y3k2zb//par\nZWz92tt73zls9WFobmup3IfWghoPUMHqqVM9X+BmSwEc7FM+E4b9B8qmVC1w\niZf10IGW82OdOlrC/9M6j1iG8Txtqww4KS95igrs+75N8iHx2rFWusp91eOc\n8pEvMByKc9pUlZGyWHrwLxXKBXmruvL3ZXj5jRJ60jNDJ+48nRA4Zv/hKglU\npTAi1qfr3W4UWGMO6OlkwLkDiCr19OGZQ5f7eacWNAyOAT0um7NnHO1QmwRi\niYjc\r\n=FRvf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFWiJlKUmVzTW3dq0fG6P5mdkTaE1yFlQ+8sFjAP6IbrAiEAulyLZOz3oCFKJr+KqOWAHgr38w0FDKPAyHKSzgXSq8Y="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.7beb236c.0_1596217257110_0.062061693551404895"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.c44acc0c.0":{"name":"@material/mwc-list","version":"0.18.0-canary.c44acc0c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.74839da7b.0","@material/list":"=8.0.0-canary.74839da7b.0","@material/mwc-base":"0.18.0-canary.c44acc0c.0","@material/mwc-checkbox":"0.18.0-canary.c44acc0c.0","@material/mwc-radio":"0.18.0-canary.c44acc0c.0","@material/mwc-ripple":"0.18.0-canary.c44acc0c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.74839da7b.0","@material/feature-targeting":"=8.0.0-canary.74839da7b.0","@material/ripple":"=8.0.0-canary.74839da7b.0","@material/rtl":"=8.0.0-canary.74839da7b.0","@material/theme":"=8.0.0-canary.74839da7b.0","@material/typography":"=8.0.0-canary.74839da7b.0"},"publishConfig":{"access":"public"},"gitHead":"2491ff018c9a71195a5e873fa60b912085ec84d3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2491ff018c9a71195a5e873fa60b912085ec84d3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.c44acc0c.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-vnLLKMwSWSjC8svzozCY+7w35AknyIB3P8mcgpvoFkNupckZRbSY4GSKJqSk95BqgN+ImUzjqZ2N4wp4/qa8RA==","shasum":"9fb27de7a843a4d1898a62bf344106125ac0a7cf","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.c44acc0c.0.tgz","fileCount":80,"unpackedSize":925815,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfJIkICRA9TVsSAnZWagAAmEIQAI5n+Zzn3MTvqs1apXzP\n/eV2PMazrHtJ9G87efSVM0D0p/qMOT0AEGVY3oFRoKcnYCn2QnUAE1e0pDXk\nGjgu7a7bqJ93p7YXuE1RNGFu9A4LLKeAqOxsue9SD/uPFnOusV7LLkqoYZpE\n7oj5AIPLAhW/WDsggABR/OkNvyoYXi7Vks33h47Pe3QEcvGDUdPSwm/eL8Zh\ndZIm59lq+lGKXhfJEeVKm9VqTuq7NBHEunTZ+07fOkjUoXrpdHbncfewB2/s\nttLswTe13x0GR7TQkx148eJdk82SGHDIy3+pFjxZ9kYugXSG4e18IKc8jC/9\nvLhWc1vqu9LJfRr2GwW1U65fUYnnDB30cUDa3BA78ezZQ/zzQiicrHwPQkyv\nBlULkEfEg3mBAimR3QpHf/F4LMC91Qb1U5gFCmxVoJJ7EW6XyJ+5b+mseode\nNqyLqzOiIDYBSJ2XQe84NThx+IOvoWmd+w7bQ8H+zQUp+kRdnFtQnmtHRtE2\nlaAIVIjR7gC7lsd7WvUy4YdZVkF6ugagXcEhq5l05TVHeKnAgiROOYc1KGad\nYrns1bkaCBhCBk6bZIvSZ+WIPbsdCklIoC2A4IK0ldAX7koaDuwZ0Sdy8dH4\n9zxOZGPuiq/A7dUGkFU8fChm0sqlBEncp270qE83gaUFpnHUuvBji5GV3SK6\n+d6v\r\n=QXxg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvn4EpekqisX6J0e6VfOoV+NhRnMFOOKxV6t/aBodcTQIgWVbRjLiYREFbvyia9rBxdogAQrxMTF6Ni3VFMCHZxo0="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.c44acc0c.0_1596229896194_0.6852765909042462"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.779853ff.0":{"name":"@material/mwc-list","version":"0.18.0-canary.779853ff.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.74839da7b.0","@material/dom":"=8.0.0-canary.74839da7b.0","@material/list":"=8.0.0-canary.74839da7b.0","@material/mwc-base":"0.18.0-canary.779853ff.0","@material/mwc-checkbox":"0.18.0-canary.779853ff.0","@material/mwc-radio":"0.18.0-canary.779853ff.0","@material/mwc-ripple":"0.18.0-canary.779853ff.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.74839da7b.0","@material/feature-targeting":"=8.0.0-canary.74839da7b.0","@material/mwc-icon":"0.18.0-canary.779853ff.0","@material/mwc-menu":"0.18.0-canary.779853ff.0","@material/ripple":"=8.0.0-canary.74839da7b.0","@material/rtl":"=8.0.0-canary.74839da7b.0","@material/theme":"=8.0.0-canary.74839da7b.0","@material/typography":"=8.0.0-canary.74839da7b.0"},"publishConfig":{"access":"public"},"gitHead":"e06c13898d0c9fdc7cd494c68586a55eddd2d483","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e06c13898d0c9fdc7cd494c68586a55eddd2d483/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.779853ff.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-hwLzVoPczKRycDqAE1i13c2pIfJ1vf6zptl1ALehiDNPCAp2OHf2ztDEA7IizryGCqzH+mKbntLob/llVBzJdw==","shasum":"8f129f728cc6ae0ac5a25c01913fd5e8af0fe1c7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.779853ff.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKEg3CRA9TVsSAnZWagAAQjEQAJyWxsurY88NqktffKZw\n3ioBSPbTWvBJkyTpTXpto0H7Tk0wJrQmE3+cpvqTM6NyLqk5v1IWuFsMbkGh\nqJZwauyfA9HT9OL1TMo59a2T4a8SozwNIrNz4xiKLLrtTqjNx4b3/F9lPzYW\ngWL3WfQOJ7UPoFQe2+M+PzEaMQxd0kqEWP5kSev/wmxBmPRiquk/vUKeGP5Q\naBPepAqpa7Y/r/5qqku8VdJmpQqQs+s738zUle50RjcS0D9cnyQx+WOUvbJ5\nlZCR/lAoYgl00XGETWxhIMppZ/mKNuNMBanwfZJCj3W2b1VRGWztMdKyY9TV\nOQSA6ZoCYct/2qtAPZ+WZyJDzkMrgVmUBwvS/U0J9oTmwxLoP9Kf4dL0ybmH\nZ6eSaxMGMb/+gWwwmuIOlzhLNecsX72IV7UbC3cVd0DSJb4Zl7djZ3gWCtLK\nGHl2mzREZntNIngJV8XWrPaUkE5oogZy9hVqeMXd/sgp66KTpX0Ty24uIvM3\n6m4KAQC49wKeBDRajHA8E1hVnBTkOPfWlbFRXTE+K6Giu61liJlv1q1cGj/b\novHlHMV355zv2KVHKnXl9cJLSEkyFCfMkvHvoqOYJ4zX7iYotSTh4Z9BYqHz\n36Zl1ScDcmoniCxPOrB+0FiwW7NsiBFJhUNfHb1UzbHasbowYCOlxqnQSDE5\nohBL\r\n=w9ta\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMJlazLB+JLW08QgGc8LUsIlRYG3+E/JnUcU1JO+yfZQIhAPjkzGfpLau44pcepSui9D1kz1+l8JGt4lnJSpdEZ+CW"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.779853ff.0_1596475446753_0.5083393428604519"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.8aaf270b.0":{"name":"@material/mwc-list","version":"0.18.0-canary.8aaf270b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.74839da7b.0","@material/dom":"=8.0.0-canary.74839da7b.0","@material/list":"=8.0.0-canary.74839da7b.0","@material/mwc-base":"0.18.0-canary.8aaf270b.0","@material/mwc-checkbox":"0.18.0-canary.8aaf270b.0","@material/mwc-radio":"0.18.0-canary.8aaf270b.0","@material/mwc-ripple":"0.18.0-canary.8aaf270b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.74839da7b.0","@material/feature-targeting":"=8.0.0-canary.74839da7b.0","@material/mwc-icon":"0.18.0-canary.8aaf270b.0","@material/mwc-menu":"0.18.0-canary.8aaf270b.0","@material/ripple":"=8.0.0-canary.74839da7b.0","@material/rtl":"=8.0.0-canary.74839da7b.0","@material/theme":"=8.0.0-canary.74839da7b.0","@material/typography":"=8.0.0-canary.74839da7b.0"},"publishConfig":{"access":"public"},"gitHead":"e119651cfd9ab60def67a36255b4ea0ca1022d37","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e119651cfd9ab60def67a36255b4ea0ca1022d37/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.8aaf270b.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-REUI34pt4V2loyGv4qdT5jU+klGmylWp2F9ZSeYH3A6NyzKh6f4VZ7VaLUoI5F2/4+I4UyUfaJTMquhhNSOYUw==","shasum":"cb23f01204c9becf6577253881d3c9e5608fff6f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.8aaf270b.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKFpJCRA9TVsSAnZWagAAJLcP/j1XEkKjB6AHU56gQeHb\ndK5PDTxBCko2ytkesqYc1F2rfjgrucyWq4UNclgis/kW+RnqurErdXzchr7k\nQhG0VbRmOH429UCgY9+XhinnutqImyxaNFG2Axdmqe7XexYeWXSSLyJxxVmG\np4B1t1o4M3yYLs4iUhPV6IiM3JkiCorSDPz5P1CNgXzW4KESEwzGIuYRuo2S\n/6vYg4JTsymI/tDdZwV6n/qmm9TaY0ErZd4J05v8Gnznhg08tPYu5XdOoOF1\njlDvYrIa4Jff3BsjbXblKiptX5thQTUH3eKpyCZRKlRcK0m+lBU9NqbmiKN4\ntRZ8naOIysyfru9lkmCZhvXtOw2NYhdFxGvqI1wsqErGsR7oX8qHRMP0a5oj\n8w2R3zHzuuN7Gfokaq2b9osLUwxGiEOyVJe8iJwJNE3zTmNky5W0OcGo9UE/\nUZq0iQ5fV7T7FjJDux7WtzwcvtWpcZPJQyglJZHT2oaaBKwBfpMkJmLecxvJ\nvmImu4CdSkAq9awk50ReJq/w95HaypO0FFhjb3B/zTVXt0YAKmMAX0BK2qrz\nHsX9UsPotnwd9MClzNs0lUZSGCREnnaTQhTiv9A2TsldaPtKU2ZN4VJhkYs/\nxRGN+atwHKXsKGnyEjMuX3tRAsS/BbGBGyrRRXddVxL7h4Bb9824ot3oum1k\n7tj4\r\n=+nQ3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFV3eey6eQm3ORgsr+WE5xT6qWVcbYS7UR8Oc5PwMNduAiEAtEJECruDsXTKtOCkeHvWRbJDJ3psoRz2qk1U4UXp17A="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.8aaf270b.0_1596480072863_0.5557286354484152"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.5cde9f12.0":{"name":"@material/mwc-list","version":"0.18.0-canary.5cde9f12.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.5903d39af.0","@material/dom":"=8.0.0-canary.5903d39af.0","@material/list":"=8.0.0-canary.5903d39af.0","@material/mwc-base":"0.18.0-canary.5cde9f12.0","@material/mwc-checkbox":"0.18.0-canary.5cde9f12.0","@material/mwc-radio":"0.18.0-canary.5cde9f12.0","@material/mwc-ripple":"0.18.0-canary.5cde9f12.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.5903d39af.0","@material/feature-targeting":"=8.0.0-canary.5903d39af.0","@material/mwc-icon":"0.18.0-canary.5cde9f12.0","@material/mwc-menu":"0.18.0-canary.5cde9f12.0","@material/ripple":"=8.0.0-canary.5903d39af.0","@material/rtl":"=8.0.0-canary.5903d39af.0","@material/theme":"=8.0.0-canary.5903d39af.0","@material/typography":"=8.0.0-canary.5903d39af.0"},"publishConfig":{"access":"public"},"gitHead":"12da43d72184f78a2245a6686a1ebff3e7bb03e7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/12da43d72184f78a2245a6686a1ebff3e7bb03e7/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.5cde9f12.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-vxKGo1oYpjx/IDZug0PzFcnqjPlbPm8z06VdcRuG8bxorWD+a2fb7ybnXMeEMfWMvQyB3pclgKSOZAVaYFgp6A==","shasum":"be3996cf5faed2b792fb827135fa3a57a2b12611","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.5cde9f12.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKF8TCRA9TVsSAnZWagAAYnEP/3r+ETG5NMsv4oJ7CetX\nB26NhX/C8NfPG1odQWCF2BGfjKcXWxzqZY2FYsym8wRixNO3PSFzMWPllWcE\n5GkqQxDWnLr2jguXcXFB8RyoMgkY8TWto6cPD7bIyvH9hh5lc4wc8KBYlhw1\n7+QKq15f8PLUAmMxVNZq/jdVvlMOcyh1fK+z+JgG2LbIH7fPvd7UiJ0epX5M\nxwHz3MwW+xipEW6Sg8XwflgXP7R02uCfC/C0XahEi4l3usXNRm6AYVT8o7rM\nxX/utOTtw/6xemK7o0EEbl7ba+IEZZJYhlFesyoYW9kBstB5cFqQM8nQoQFD\ni59ZRztV4o3mpGGnOZ2vPP/kZ8UFIpsvgWLzu4REeZxBqj6Ef/19TD19I1w9\n43/1rJTuvbmGsQyvocuPxogI51P8pdN9/mVnyhrJ1dejgiyERjw/jIx4T2zj\nFBo2EyP9PjX7dnXxwaaNu84koCCWSe+eWxvd/nBieDPtm17pSYmWVQPaXqKF\nqB40n7JcnGSk2UCjofXDB4KSTGVZHDeRUYLZ6S5F7/60EFclaPqwjVGwh2vf\nXik4wP8fY1r/s2vXh44sKUGBJVYz8OGedGWRN3LfeNIQc71SwNEuipaVqhNT\nAF/bSMfBlcpmZ/OnncjaXKvVs9Vq7AxkPmWyu41tr3eJ4cjg0o6S1iIxZTfG\nJ2yo\r\n=gA/q\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICJrhHnI3k6XZ31OnnPl90wVfh6vNqQzv0PRwLvjcmlIAiEAoNW1XyHGp8SJFw4ddCzZBKopN/rBwLYMxS+pHtTd4gY="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.5cde9f12.0_1596481299534_0.8281367094253012"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.1607ec53.0":{"name":"@material/mwc-list","version":"0.18.0-canary.1607ec53.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.096a7a066.0","@material/dom":"=8.0.0-canary.096a7a066.0","@material/list":"=8.0.0-canary.096a7a066.0","@material/mwc-base":"0.18.0-canary.1607ec53.0","@material/mwc-checkbox":"0.18.0-canary.1607ec53.0","@material/mwc-radio":"0.18.0-canary.1607ec53.0","@material/mwc-ripple":"0.18.0-canary.1607ec53.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.096a7a066.0","@material/feature-targeting":"=8.0.0-canary.096a7a066.0","@material/mwc-icon":"0.18.0-canary.1607ec53.0","@material/mwc-menu":"0.18.0-canary.1607ec53.0","@material/ripple":"=8.0.0-canary.096a7a066.0","@material/rtl":"=8.0.0-canary.096a7a066.0","@material/theme":"=8.0.0-canary.096a7a066.0","@material/typography":"=8.0.0-canary.096a7a066.0"},"publishConfig":{"access":"public"},"gitHead":"0ed0cf9b8288929f621c044aaed573575e7f23ae","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/0ed0cf9b8288929f621c044aaed573575e7f23ae/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.1607ec53.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-cPgq3UDkkWO4j0Wru8h8F9FowrTZRKsKmkmh91F5CVhCWstf5lKc++ZtgjOTqD97c4By3KXRis3bd4ieRExidw==","shasum":"be436a602def975130b804a005a2e206940eafad","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.1607ec53.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKGnBCRA9TVsSAnZWagAAfyEP/27NQpOl2PN38jN1oOwc\n33Uy+uwv1b28sb8lLxYzqL3z1UjiDy0uzMlvDDBPsCj+QYQhDGRS715MTHI4\nHBkmgZgF3VoA37+mVzOGC5TkKAfIOwQunl+4eOD0BEKoD1UuTwizen0V6Kte\n8dT96sMz/iSkKH9ZJ6B+JRBmETCnoKAActPyz0Qy+6R3tpGoFB4gRcuuN+6P\nRHaJCUEWHB5T4SCJr7Dh+6wher1LxxQrZ7jaQMvM076d9TyI2s+lv6BuL2ix\nBbe1Md+251s8hgjWVCTnSFIol1Upws9k6dsrY7GTpqud1LfAPfmBf7Z6ipXb\n6NHslYc2P5Q67f3gp5BoXw47awtqZnqZ1Cf4SELAFdWZmP2S9+R71qDDA7p1\nL6s+PRTKeimJtr02UC+x0ISRwNbuMFt69ASBTgdQkxcupZOaUAvQ3XPsEbWz\nbPO6C6tg+0R8cgMuHedwMhhKp7+bigdhpDyf5M/xqIxY5xMYHsbQUfwlLtys\na44Qwlg5aNI0aNgkCHodRC+xigb/eJSK8Esq7p4ZB+Y35dC3Sxc351BHthBW\ns6AV6iugkH6m9NsLtE9JCI5T8YNmyJWwHHyEE6ruf0ooxtQgq+JNJPpdDyQy\nMCEThUGhEl/cB2wZKqQT0NKRU1ehkp2qg99VQ9VuPw3mPtNef2EX9f6j2RCP\n77m7\r\n=YhRt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlheh/x+sM8jyB56O8VrN4WR+tRxp2O5iZHQX3R6pBbgIhAN/TlpLmozxZTSnI8gWyfQ0IHp47hAQFuhFFV/BziGsp"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.1607ec53.0_1596484033479_0.3447595624104718"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.678b30e3.0":{"name":"@material/mwc-list","version":"0.18.0-canary.678b30e3.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.096a7a066.0","@material/dom":"=8.0.0-canary.096a7a066.0","@material/list":"=8.0.0-canary.096a7a066.0","@material/mwc-base":"0.18.0-canary.678b30e3.0","@material/mwc-checkbox":"0.18.0-canary.678b30e3.0","@material/mwc-radio":"0.18.0-canary.678b30e3.0","@material/mwc-ripple":"0.18.0-canary.678b30e3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.096a7a066.0","@material/feature-targeting":"=8.0.0-canary.096a7a066.0","@material/mwc-icon":"0.18.0-canary.678b30e3.0","@material/mwc-menu":"0.18.0-canary.678b30e3.0","@material/ripple":"=8.0.0-canary.096a7a066.0","@material/rtl":"=8.0.0-canary.096a7a066.0","@material/theme":"=8.0.0-canary.096a7a066.0","@material/typography":"=8.0.0-canary.096a7a066.0"},"publishConfig":{"access":"public"},"gitHead":"53d3656f4039bb116e0f771ca0dffc41b500bb59","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/53d3656f4039bb116e0f771ca0dffc41b500bb59/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.678b30e3.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-1wqkD89ASfDkEQ8p6BuYKCZZRTDHjdccTJ688RxuKs1ijNNbQI17tQlG5x0fUnnDFYsiKgBuhbIifkfnTwOWZQ==","shasum":"ac4b44ab6fe4de803b96e82e4f8a2087fe4f9152","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.678b30e3.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKGqpCRA9TVsSAnZWagAASDkQAJO1aSJLHKrRxNy5XwH5\n3Z5/t8yF/jDCw3gRW8DwTp8mTg96lIGp1EsYAy4UrS7NDqunwaZWobDDh/Jm\nzIF/Oo8CigzTFl2ZRX5pCOztUwn3P1h9+5o1kjH1E+xRl3tl7Yx+L8OutB/B\n+WdNmx82RmJVGymXeShSrjvfSEIMLuMIHnIDoerPRRbU9eZqKesD0sS5lVL8\nfFgq3bCv3qZAfu5cFhacpn7iF+QUMJltXs+/h6dbHaXpTTIIRbkB5if8TsUV\nn8q75fayp+Dq4Qwyo14fkk/zH1Kue9U+gRwEwA7MO6IxGlwduMoAmwQQKLQl\nJfY88QYwqvcK0qQy9RdTtJi2wggyXc8mi61fKopDhKVszk6WV55COVOst4uC\nNcR+QmBlhoRrlMmGAZUdppzYUrXxco4R7sUlm4sqPMfOVxiT4kMAZdnUsEi7\nt1YT4joCXRfBohSlf8ww3xv88BdumF4n8n0cUUEiMYCITbF68d5JI3RLBok1\nOaZAIxVSTnf+nFVUS6QNQ2Q4FDEkZ3hWjG6X8ZaJoOGazJys0pVe4ZP79xz8\nfkB1etcDT9zJ3LA2w4RUvWcUbjGaMsHkKbY6Ek59mjBW3f1g7MAgv1tfiDu/\nxNhmCn5B8nxtAB0tJ6d6AXPWaZFhLZF0O4ae0khI9MGbCMhO5WV0dBrRZ+bR\nluqm\r\n=V4Yd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA+tfv3JVwFBCZQb4+ANKqajT1J3vDLjig29NheQzBPxAiAVOw35WM1IwxmZ/nEl7gj5Q+7HJwhiIJHr2yzIhsl1ow=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.678b30e3.0_1596484264548_0.8662043130939698"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0-canary.21c55569.0":{"name":"@material/mwc-list","version":"0.18.0-canary.21c55569.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.096a7a066.0","@material/dom":"=8.0.0-canary.096a7a066.0","@material/list":"=8.0.0-canary.096a7a066.0","@material/mwc-base":"0.18.0-canary.21c55569.0","@material/mwc-checkbox":"0.18.0-canary.21c55569.0","@material/mwc-radio":"0.18.0-canary.21c55569.0","@material/mwc-ripple":"0.18.0-canary.21c55569.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.096a7a066.0","@material/feature-targeting":"=8.0.0-canary.096a7a066.0","@material/mwc-icon":"0.18.0-canary.21c55569.0","@material/mwc-menu":"0.18.0-canary.21c55569.0","@material/ripple":"=8.0.0-canary.096a7a066.0","@material/rtl":"=8.0.0-canary.096a7a066.0","@material/theme":"=8.0.0-canary.096a7a066.0","@material/typography":"=8.0.0-canary.096a7a066.0"},"publishConfig":{"access":"public"},"gitHead":"65f46b7dbda996fd5cc43abfdb42943515aaca08","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/65f46b7dbda996fd5cc43abfdb42943515aaca08/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.18.0-canary.21c55569.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-buAIFRrTXBycW2DItQEYvBSQJOZIatk7YqkzGG7q1HcnsWO5l2BGy6NN0DM358u5QcI2dJZPDwGdYucP3T1HGg==","shasum":"5cd84f802a14d84754b684c69215980391bcce14","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0-canary.21c55569.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKGwdCRA9TVsSAnZWagAAALYP/0AhQthebS2fdIfJHdb1\nYvvLljA0vhAbR5T24V0hFswRBZf4mO0oU5CeZRW6OqVHfyP/DaYEO4hgQHwM\n2WluDVI/5o9RcLdirJZJZ2aVRso6MfxoHOM0aB9sa4yIYF+elLMd64/ZRrvn\nsILtZq7sw0p239ht8hQci/8C57cqi86bMhSKbRxaA86vpd4Qj3yDgmHVJrbc\nhDtg9simTEtkxQ/z49tve3VhzPMloUMIp8fk+TF4sATiMc/+NkciDIPbIOn4\nVvkLBXRdn10SFRuqkhxnjDczwP2SNP7wJx0Zy2I38kG0IsjLiBkOg/akd51V\nEJrtuzACOmuXAAErWwsh1DOb1Zpo56lU0w3hrzfroqdXFsx2nWTnP+u1cud4\nWVq1H2RiKuvhC6PqtPhW2jygzx9zCZS6W7g++J9C6gpvsodFl1v9fqK5ZPH/\nETZejBnXtJGOq+OJHk+OVUWWapouQN5TJulVblalyPAo+3AmLXjngdsCNHzA\nIgAHhBymGv1NonbwkzNTvV5qt4QT5EKuAzVO1qh8JZJNzX11qso+4Dt24orY\nTCmKHOXChpxgdo6/wAKpu31HvOikecYwOdD0WnnnKDcbo/eHeqiqzv65ed7K\nUKZYpd0E10ffFWIWi8fUV4vZFwdF8fzCh8dUlwYvuJ0GfqIX1w+WL+ry6+EG\nIMyy\r\n=zR3K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC/8+zf0OILtp2fuMTqWzoJr4uFCeLhkCv022Cm+Em0rQIhALNbt5lw3mY3zk7l0V/+LKAi9yz+cTXQ187Sui67qmp4"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0-canary.21c55569.0_1596484636757_0.8907417609616375"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.907d4d7d.0":{"name":"@material/mwc-list","version":"0.19.0-canary.907d4d7d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.096a7a066.0","@material/dom":"=8.0.0-canary.096a7a066.0","@material/list":"=8.0.0-canary.096a7a066.0","@material/mwc-base":"0.19.0-canary.907d4d7d.0","@material/mwc-checkbox":"0.19.0-canary.907d4d7d.0","@material/mwc-radio":"0.19.0-canary.907d4d7d.0","@material/mwc-ripple":"0.19.0-canary.907d4d7d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.096a7a066.0","@material/feature-targeting":"=8.0.0-canary.096a7a066.0","@material/mwc-icon":"0.19.0-canary.907d4d7d.0","@material/mwc-menu":"0.19.0-canary.907d4d7d.0","@material/ripple":"=8.0.0-canary.096a7a066.0","@material/rtl":"=8.0.0-canary.096a7a066.0","@material/theme":"=8.0.0-canary.096a7a066.0","@material/typography":"=8.0.0-canary.096a7a066.0"},"publishConfig":{"access":"public"},"gitHead":"c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c9bc2fce8a40ef8eff9b7444030f3e2a62cc1d8f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.907d4d7d.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-LhrsxIHbKjuQUR3AA/mmi/beIlphSwJwL0j7uMaeo49E5+6wkKfzJ1jrWrbinHG5DkAxs2auIeaDzGGzBuR+FQ==","shasum":"d193d5d79c59ccf7970b9d81eb1f4b162f4463fb","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.907d4d7d.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKIAuCRA9TVsSAnZWagAAFcEP/ifRXCeRkKwCF+4XPP5r\nqp6Gu4qGHd4Vt/7skpEN088G2nZ1CFfHimJEtziFg5iPYiK7Xaj861hAOveK\ntrO1BWry15VjNZo1t0uCKlQZx4p+zoAPPb++jHaUWFd2TU5EbrhDUlPT5/HG\nFgsfGUPLiPmq9HAL3oUmn0Vi2dpLO2naIoyEpdNdNRXdEPMBZ2GlafUkeBPP\n9k9YtIdp+lo2kJdHYAUdgS/svBzPOnpRKuUPOWmoO1QGIJJqOZQJlO2/ObsG\nRvAr9vlYX8kdhE9g+Jooz+cWVQJxwfiPmIgd/k7xvqqaKMkW88WHVtRpnddU\nectlIkrBQGLAaKf8N3rG9RmXo6MsWe3h+0PEnDr2dXRh4ndTiSvwrrib+XR4\ng6VPY/ltsWmb7pFQEpqTGTpSqjWXiUllJF/xne3UEn/oEsqdzHeNaXPGh1hW\nwQsodSDLgEaxnbIF3iD03WDC2hXqGLvr7w9/X2b+KsBFWi4Wz4zMINgO8QT0\n++/Otk4ThVB//97oBdzYAkNP61gQ2FSfcGPAX8nZNvb5tZNDe9hQkVUI+Q2i\nWHsDCOkIlu1fnfFsJUQeuKa0ZrYhSj//M/ONhdW4XLTW+7+MvGqV0uyy3yiv\nEBea64mmx9rjHeySoMi3oABsyOJKlkzjU4ls0XAZCE73do9jqzji9vDD0C+o\nmFjS\r\n=PQzu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBV/nhFpDTeKNRvZ7UExJwXIN7VN5uFOZ8/NUuJDkRZcAiEAksubtNSIZ3VWUukRf13AxKyXgpYdtN78TSJNWGlq/tw="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.907d4d7d.0_1596489773633_0.1723652464293739"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.18.0":{"name":"@material/mwc-list","version":"0.18.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.096a7a066.0","@material/dom":"=8.0.0-canary.096a7a066.0","@material/list":"=8.0.0-canary.096a7a066.0","@material/mwc-base":"^0.18.0","@material/mwc-checkbox":"^0.18.0","@material/mwc-radio":"^0.18.0","@material/mwc-ripple":"^0.18.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.096a7a066.0","@material/feature-targeting":"=8.0.0-canary.096a7a066.0","@material/mwc-icon":"^0.18.0","@material/mwc-menu":"^0.18.0","@material/ripple":"=8.0.0-canary.096a7a066.0","@material/rtl":"=8.0.0-canary.096a7a066.0","@material/theme":"=8.0.0-canary.096a7a066.0","@material/typography":"=8.0.0-canary.096a7a066.0"},"publishConfig":{"access":"public"},"gitHead":"907d4d7d7235b3a3256595bce22f0d7db165adab","_id":"@material/mwc-list@0.18.0","_nodeVersion":"13.8.0","_npmVersion":"lerna/3.20.2/node@v13.8.0+x64 (darwin)","dist":{"integrity":"sha512-mzcAtJkUG2icPvSaIwxDI8pLWt1szVmL629ccm6nCwdFuYeQEwjIj7aR8xD0kZ4rgaOi8IgXH2Kq5YZnywdIXA==","shasum":"d801a4e99b51da89d33c20043b3f565c9dee9bda","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.18.0.tgz","fileCount":80,"unpackedSize":925853,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKICaCRA9TVsSAnZWagAAvrYQAJM/E1RWQJaa5oMxjOaZ\nwnvAX65mpbhypPxlUGi94w5HyVfB9y61mO9/WMW5DJdxTFWeWK7RhM3IT26V\n4OFwz6H3dSdU0ppDFmyi3wxbq4Vy60d9gyKpmFtEvep2TgVmHZDgshE+BIjb\nhORu3JlQdDPTlpXmh6+bdolpgNgmvRMM9CigPx7F2edfHVjXqWYQjbexYszV\noUPP3OmBbJYh560XyRavZFUFXjCEUO65zN+CuRb+TVYbZBbG+KDPA3RE4fpb\nW6sBKl0HX++sKCQDd4FOQT6TRLm9vTS2B6NKy8dJ51NHSPkl0pZhHMrXgznX\nzpqidYk4uDNA0cbMS2OiABtOVi5szjSsSXYwSL2JK81TnmuQRRe9H0afHmrL\npwR8v5PGatDY6TL283r6/mVRATu9zCRLkDGspU8z5rbtG0PFi/SQyRmecXzI\nKWQappS0ZpIg0GtAIvXG1ijYs5utvIn1cGfGgt1lMSAWV4drZsYq3qtrYFib\ndJuTjZsnCcsKy4IYwpplBU/qkCsaj0cdxIXzH/AcWrXyWy5SLIzrZ18YyaWp\nLgLT/3wGlL3FDwWc/Rc5RW/6kkpy9DOj3qqz8TGrFASBJAfQEasdVAtFUK0S\nRMh6ug4BiBw5/weRSuSlkFaHo0qHPpYj1gFNHtMZUv8tuj3B+wDqbbeUuS3s\nW8Ak\r\n=DPyc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD0lKWJyAFW+QI3xDPlt65PzSPC2nl+bZM7SDsyiLKP7wIhAJLwK1xbyZ/i2k+Ks6e8UOn0v4sf8DMRBcxuHkIktwSV"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.18.0_1596489881622_0.5053943386430857"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.f7958e4a.0":{"name":"@material/mwc-list","version":"0.19.0-canary.f7958e4a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.096a7a066.0","@material/dom":"=8.0.0-canary.096a7a066.0","@material/list":"=8.0.0-canary.096a7a066.0","@material/mwc-base":"0.19.0-canary.f7958e4a.0","@material/mwc-checkbox":"0.19.0-canary.f7958e4a.0","@material/mwc-radio":"0.19.0-canary.f7958e4a.0","@material/mwc-ripple":"0.19.0-canary.f7958e4a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.096a7a066.0","@material/feature-targeting":"=8.0.0-canary.096a7a066.0","@material/mwc-icon":"0.19.0-canary.f7958e4a.0","@material/mwc-menu":"0.19.0-canary.f7958e4a.0","@material/ripple":"=8.0.0-canary.096a7a066.0","@material/rtl":"=8.0.0-canary.096a7a066.0","@material/theme":"=8.0.0-canary.096a7a066.0","@material/typography":"=8.0.0-canary.096a7a066.0"},"publishConfig":{"access":"public"},"gitHead":"814d7f99f2c2016c7d56a7297cec2ee04c29bbcc","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/814d7f99f2c2016c7d56a7297cec2ee04c29bbcc/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.f7958e4a.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-ENPzwBzvPMoX7/iaz8oYy+wRDu/1Su31thp4sBOTjlMp2MKSBsjA9AgYrE2IyfnswP9mY2/G94A7bL4Ha83tPw==","shasum":"4be9c38ad825dab1bc4610fd1e7c64f513145b32","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.f7958e4a.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKMLYCRA9TVsSAnZWagAAZn0QAIcMdwtk/xjlVx6W63r4\nTbbsj6Uou6N6/wZDcRaqLLLcudrpzGt7TAeDz8c4xFhQhHLzOh9+rVESFNxj\nv4LuN0jThkudfGgrlnrItHnXVOAB/4sLs9+wkMohWpHRohQpv6IaYKyKMXLl\nM7FCeQV2th8YscHIn7COlxZqIfdg1C2BJoPL77LtPojHKa7FIMuhQ5cTrw2e\nx2DQeRSbguj2gBBhoFrFEvfdb/fpfa0T8KICGWzcMGv5eZymQ5Kk7o/yV8kl\n6XqbjOMX7n4WZgPaxz/pLKHFDOIdw1xTfMsVMQNUe9ZD+LnpkFh2YNZpDypS\ncqVkYqte6icC2CKI7ZMjTlADvMggPI5ImNpC14F65lMOgw5HQmtGHc4GFN0k\nYOPmUOHNpxexQj4Uw4ycF+zipEgEOmDARhq3fshzSs86LzexAzk7dHTcmfR5\nBC4cEOOil/ztdtqHdO89tw+Lu8pRUNb5YH9oTJcBe54cgzoZiLUDKM0AlJqD\nrXqe/w3HcaXGAmo2AUgGCXyY7D8knhSkg1yMzXXRaFRZ0HesbL+N/clNGdC9\nLrctI7uKGuyTEFQfSCp9onleNCoixyrtorUiK1OeahG7MdI6Ay4tUSPHjbfq\nM2W3JDmnvFAa7UDL6+g/9+Do8R/mm0xzuW1btOoKu0egx4PufJbVG91QO+Sh\ne3Nn\r\n=mOgr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDsAgWY3m2h9WhOYBj6ch+ODt4MyFjKCEmlVm6QETdQRAIgOldVKat1p2viVT4MjcIUkkZii4FZ4w9tsAE9Uv7PqSY="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.f7958e4a.0_1596506840112_0.5982530699089821"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.f8ceaf79.0":{"name":"@material/mwc-list","version":"0.19.0-canary.f8ceaf79.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.1b44b43c8.0","@material/dom":"=8.0.0-canary.1b44b43c8.0","@material/list":"=8.0.0-canary.1b44b43c8.0","@material/mwc-base":"0.19.0-canary.f8ceaf79.0","@material/mwc-checkbox":"0.19.0-canary.f8ceaf79.0","@material/mwc-radio":"0.19.0-canary.f8ceaf79.0","@material/mwc-ripple":"0.19.0-canary.f8ceaf79.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.1b44b43c8.0","@material/feature-targeting":"=8.0.0-canary.1b44b43c8.0","@material/mwc-icon":"0.19.0-canary.f8ceaf79.0","@material/mwc-menu":"0.19.0-canary.f8ceaf79.0","@material/ripple":"=8.0.0-canary.1b44b43c8.0","@material/rtl":"=8.0.0-canary.1b44b43c8.0","@material/theme":"=8.0.0-canary.1b44b43c8.0","@material/typography":"=8.0.0-canary.1b44b43c8.0"},"publishConfig":{"access":"public"},"gitHead":"a1435334692098639ad087e00c61c1190812b959","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/a1435334692098639ad087e00c61c1190812b959/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.f8ceaf79.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-6PBCgqD/pXUwrp+S6YsM/11cPdFn+bme6p4httxYxpeMUOXy7WAFgTPpiTrql9YT72dy96XnkKnDnh7ns1T+vw==","shasum":"ea6f5bbc1f195a5c8138f6e004550a2c58a5809b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.f8ceaf79.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKbSMCRA9TVsSAnZWagAAPYAQAIfNyQijgPvYpZzdROlX\nO/P78WJiHJzmS7XmvpDn6d81mt66wEwqke2yNmJvNEBv5lpwBaKVwvQmBLcs\n1R6HtT8DmCpB2emS+ejYg6FndH0iC6LNU4sn5QcYFInv0l98Um+gNzw+TW01\n4kHT1/Q+y287eAxUL/gDhYylnwp7WUKrzLJ11xap6hXETlDpMgLIP5ntpqEp\niZTG3Qs8o188jO4g9evCM6Jt8nMFTNMDXwX58LpP/YLFWvqybEfoilHLYntu\nKm3Xg3POdNh9xSdZ62MB7J24rVUjazb183CTwunv/CbEZcJG2JyshdxK3Q8W\nqHCepZDJQZV6pPM8tEUWfiEPEGNV68A0nz5i7NRqsQT4kojUn+Hig9QUwKvB\nVjIr2pxa7mEZNCnTBPb72vvy29AhAl91tZfsgrWeN3Dpv4miAJvLi13xRJxm\nJ7qhbKnP0kcidkdKZ4w11YEkKfZlEucdY0NLeOUAaJDu/1lLOd+ASAP4Lo8U\nfapOy6ycXnHz1fid1ugt5erlrchcDgSF8V1OGnspdo9HPIvYEWGGTQajZw+H\ngAVM+LJ55mhF5FgN95KOnj8fzwiU5ZkK11cV4qIxwr3SIgChWhrqayd9odAb\n3q1wD1dYp6Lk/H8oMfTt2GTw9O47RoT0MgOLOd2r8vZ9jXUB4EuFL20Bo6ny\nCTS1\r\n=xzdz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD17d2qfNazgcCd67AIZVOQcFYg+Qe16wgI83TaN5n49wIhALBUxVmLDF0h40BXBstrm/OGe+6zGnsafAtg7RqIKFDz"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.f8ceaf79.0_1596568715794_0.0649912635462242"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.6b9e385a.0":{"name":"@material/mwc-list","version":"0.19.0-canary.6b9e385a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.1b44b43c8.0","@material/dom":"=8.0.0-canary.1b44b43c8.0","@material/list":"=8.0.0-canary.1b44b43c8.0","@material/mwc-base":"0.19.0-canary.6b9e385a.0","@material/mwc-checkbox":"0.19.0-canary.6b9e385a.0","@material/mwc-radio":"0.19.0-canary.6b9e385a.0","@material/mwc-ripple":"0.19.0-canary.6b9e385a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.1b44b43c8.0","@material/feature-targeting":"=8.0.0-canary.1b44b43c8.0","@material/mwc-icon":"0.19.0-canary.6b9e385a.0","@material/mwc-menu":"0.19.0-canary.6b9e385a.0","@material/ripple":"=8.0.0-canary.1b44b43c8.0","@material/rtl":"=8.0.0-canary.1b44b43c8.0","@material/theme":"=8.0.0-canary.1b44b43c8.0","@material/typography":"=8.0.0-canary.1b44b43c8.0"},"publishConfig":{"access":"public"},"gitHead":"d264df08ac61122a6e48c33485335fe7444fbd09","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d264df08ac61122a6e48c33485335fe7444fbd09/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.6b9e385a.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-ML2S8Hd2i+KnYGsc7PVWnLnj2ToE0WVzJJ768g6p2/7eEOBRqNxC135VmlQvJVzmlk7V0n2nKBxrruodM0thMQ==","shasum":"06be94b672d970ef7afb366ab26dd2515e9630be","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.6b9e385a.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKdNpCRA9TVsSAnZWagAADrEP/Rzhp5O/Y6poTsKBkfxd\nCpo/vDF6KsIdSyIxXfj3lmXGJy/sLTULuKYtO9m1afbur68q5SsIhl2lN/Xl\nxAEhfjt+1YZ+AscaW1cHO++qFmJ2EGRSbTbuxakB22tZOJ0qWaPWJedUPZqU\nlOE7WwHrhbI5vfncK26IA0iHOoiTX9pE0WkC1Yrxe4XmknU23fnzkhEhp8Ha\n6aA9F74zn4CCgJl2fsaqnwUU9U/e1/Me+YyNfH0GbM6PIdDABJ+9R+Wrs3IG\nZ0AlndMsojd2cmMjTm5/DltIozdho69zfb8mUCPBAj2ZzzS6o3Rqed7Wd/Q7\nQI3o85jP5RfUZ+th7HclVtOQMBVxanF4wDmGH1+LourBvJUYPXJk4neE6mTw\nUoOi4TwD9alBiDJb1bALj4c5MPrKvw9YUAsDwoDpv4+E6ExkuL5IvnpqIsy/\nlQazB1Sa0t4WB7TyVIJfiJx5quCWV5ugv+npeWbk2xvLbcckn/jAp8glks/5\nDgH65FP/FzGWQ4xPthrmzUPokZn6YDyXTAQ9VHIj5nBOSfsSZGVRF9uilnJV\n9LBe3cHGP+AiCxgPpwfqi5Bf+VA4CbFaLvOWxiRvx8xc3DAkT8yQW7Aj9zE8\n4Mw9b4sieD/RXRG5Eir5MI2339i90eFoe0BPXKpLu+4+en6qNxWykeamXe8b\n/uad\r\n=NsXb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFjfi/dYMPI0RyHIwY/BbgfS8VjwcFHymWm1hM4vk8pvAiEAuKMWtzc1nwu8Iqgj5AHpO00K0ZwOeP63zScikgJ2Eqs="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.6b9e385a.0_1596576617496_0.14489100719450976"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.9a7e6d2a.0":{"name":"@material/mwc-list","version":"0.19.0-canary.9a7e6d2a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.1b44b43c8.0","@material/dom":"=8.0.0-canary.1b44b43c8.0","@material/list":"=8.0.0-canary.1b44b43c8.0","@material/mwc-base":"0.19.0-canary.9a7e6d2a.0","@material/mwc-checkbox":"0.19.0-canary.9a7e6d2a.0","@material/mwc-radio":"0.19.0-canary.9a7e6d2a.0","@material/mwc-ripple":"0.19.0-canary.9a7e6d2a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.1b44b43c8.0","@material/feature-targeting":"=8.0.0-canary.1b44b43c8.0","@material/mwc-icon":"0.19.0-canary.9a7e6d2a.0","@material/mwc-menu":"0.19.0-canary.9a7e6d2a.0","@material/ripple":"=8.0.0-canary.1b44b43c8.0","@material/rtl":"=8.0.0-canary.1b44b43c8.0","@material/theme":"=8.0.0-canary.1b44b43c8.0","@material/typography":"=8.0.0-canary.1b44b43c8.0"},"publishConfig":{"access":"public"},"gitHead":"162d034ba4d899bea7e421640d7cab04f0130e9e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/162d034ba4d899bea7e421640d7cab04f0130e9e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.9a7e6d2a.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-hiMb+vul5MYrhAMl3f4vF+CnBw5+Fk/JpxklF/PvphvTdIZUsBCIRt1BgGgiWJDMd0WwM1cyPHUplYiIq8cqJw==","shasum":"4ca263f2bb79aaa3560c342f224421c20e5eb561","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.9a7e6d2a.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKiuSCRA9TVsSAnZWagAAeP4P/iuj/2Q2ftYpC/fpktjT\nrOASQIV4V76UTc7T6YdvqQiwG5P6q2C36rF2pTVs2yU3gT9sWAJ8KDLZJOQx\nr08MWBMdBgrw+3YPHGFpH+zTZi8+ZL3dpXROc4D+atg9K1RDpVjuA/J+LWvG\nIEAOitkUmk5xtEOqbOqcDoyC6fLPnq3B15msT2Z9sqcW/p5qrYvH35dRc/m/\nqWiWkm03eEf3hlZlVhw52PP9X5nmANft9TavGcfcSa/Vi9kgKstAQEbMWUgi\nTosGtdtaEj4FKuuuMScY5RZRKB1lf7vnQL7xUAJmcL57g3EuEUW7y7He7aDf\nZRQQLsMAMVnndwVlPXWZAiG8q4dWyAg72IBNBmIbROcWAByyAGC3Ry50lR4i\nYxb7UIxbAy/G6E8L8DtxyFmw+sVrt6IpKnjmeLB/C2yC0VA0T97JOTpmcuTw\nrK6w0GbNJbDrjuX3MINDFAp2fOM6A+l5h84uU3ihe1y9KrbSlNjtwAA11Nox\nBRUrHQKsRzphhjiSYntouNHH16lBEd+V+a3F9xOMREMzx9l47Q57Qmnp1JHe\n5RpkRU02i+tJq5lrV42+u+6cgel9LuXo4U10gmaFaF3IZMw9s532N4M2l8y2\nRgCZp4AErQd3gEDBQyn0kNLJdBFrx3qxM9y5mjXokBYe5YevOeQ/8t1vdRZC\niaDC\r\n=yeJq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCume/flhNYx7kr353AxwaKEiPIhpoQk6ih5G0zgY2z+QIgNCAoTS3foH+BZXt/rwoF++KzVEaBV2KJg+cJGaRjPaU="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.9a7e6d2a.0_1596599186447_0.8735631831353079"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.188f3f1c.0":{"name":"@material/mwc-list","version":"0.19.0-canary.188f3f1c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.1b44b43c8.0","@material/dom":"=8.0.0-canary.1b44b43c8.0","@material/list":"=8.0.0-canary.1b44b43c8.0","@material/mwc-base":"0.19.0-canary.188f3f1c.0","@material/mwc-checkbox":"0.19.0-canary.188f3f1c.0","@material/mwc-radio":"0.19.0-canary.188f3f1c.0","@material/mwc-ripple":"0.19.0-canary.188f3f1c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.1b44b43c8.0","@material/feature-targeting":"=8.0.0-canary.1b44b43c8.0","@material/mwc-icon":"0.19.0-canary.188f3f1c.0","@material/mwc-menu":"0.19.0-canary.188f3f1c.0","@material/ripple":"=8.0.0-canary.1b44b43c8.0","@material/rtl":"=8.0.0-canary.1b44b43c8.0","@material/theme":"=8.0.0-canary.1b44b43c8.0","@material/typography":"=8.0.0-canary.1b44b43c8.0"},"publishConfig":{"access":"public"},"gitHead":"200ab3c3186265d2084631aa4f47600057a574eb","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/200ab3c3186265d2084631aa4f47600057a574eb/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.188f3f1c.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-CKob1vFqNo/OMAnpL5i7pabErG/lS3L4M7vUjK2GPTKPMQ2s0l1hSlYRcNe9kut2aB3SvFDC4AqXzPWWrX7uJQ==","shasum":"d69e12606fa24d8873866895670033933645d62a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.188f3f1c.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKvbhCRA9TVsSAnZWagAAaPAP/2ZTKnfwBOSEqmQoAwpF\nWUhEES/i5rhfSs2FFXFysveoA2YBYxdO845ZVQEmn9ebcqbjLlsnYs6Ronus\nreHCbc8BBwPzGRvxSbpV9dDmvqKsGClTcqc6rpzMMNn1KrDa+9gEKXhgkaqz\nLxMQv3yeo9H7KUELpB129EOp08tIiztzwo1g+nvoppj2uS2KJyLcB1tX8tpq\nw6R8WMTMlHPH09Sxk1luuf1ZhPQOYkBSsVXSFhCJR+h7g27VOKfj1xUAXODF\nSPyihW3f7uDgixtzVinkAscKfZKJeJELbbxkYg4GyDr5ZgAKhzvdGIYsaQu8\nEWEcxoKbf7MjJ5ojv6hVnk6LY5Iq8XGat9/IfGu2RgpjZgSEgzbTHq2oka2I\nENIiiw5gsLj4kTM1DUTXFEad2cGxltYWeuKSWjvG2lCk4kelsU4bpilFFyu1\nkcnHQTsmdSo3I9sFmqPZV6sxIlYPQ+nTwXYGeAuXAgCC9tb4/c4o9pxrje+O\nLpYU82wlYfvd5PPgZAo60blNR+X5ksH2ux4IIFwEt2x8+jbMVRt/6g6uPqd4\nGscePB6JQ6RuoxrDIJbED0AfkZzsKzT9Y/xSftcdPOALnVWE53jJRfMXuZw2\nRnKNGzhcidUihm4gL0iHaXzH2FUNHkjPWRki+C3c3HzMMujEODxTkwe2L7qZ\nWYoe\r\n=hiTy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCY2cfyXJKSq3zM1HyOdIrk2pdIfSNBhxPNATmFVVFG/gIgLK1akmT2aWig/ox2cqqZYC/ikfOZAi9IYurUh9kynzA="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.188f3f1c.0_1596651233007_0.1798838007202488"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.b6106add.0":{"name":"@material/mwc-list","version":"0.19.0-canary.b6106add.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.1b44b43c8.0","@material/dom":"=8.0.0-canary.1b44b43c8.0","@material/list":"=8.0.0-canary.1b44b43c8.0","@material/mwc-base":"0.19.0-canary.b6106add.0","@material/mwc-checkbox":"0.19.0-canary.b6106add.0","@material/mwc-radio":"0.19.0-canary.b6106add.0","@material/mwc-ripple":"0.19.0-canary.b6106add.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.1b44b43c8.0","@material/feature-targeting":"=8.0.0-canary.1b44b43c8.0","@material/mwc-icon":"0.19.0-canary.b6106add.0","@material/mwc-menu":"0.19.0-canary.b6106add.0","@material/ripple":"=8.0.0-canary.1b44b43c8.0","@material/rtl":"=8.0.0-canary.1b44b43c8.0","@material/theme":"=8.0.0-canary.1b44b43c8.0","@material/typography":"=8.0.0-canary.1b44b43c8.0"},"publishConfig":{"access":"public"},"gitHead":"9726e6593d779066f5b7158af254537ee9c9174c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9726e6593d779066f5b7158af254537ee9c9174c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.b6106add.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-0M2U4LWAzSBg+S5ZFCgU4QiH4VHcX1vbkXqb+7ivPHZJfqD4gzJyfvMQC7F3uMktYP31VBmHusciGQxADhizdA==","shasum":"865c16879d611dee1b31c0e5c83511c91a447a32","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.b6106add.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfKxtxCRA9TVsSAnZWagAA6vwP/1yEB7rHKPqxXDQVY9JY\n5+W4FAkLkv77EHeXIP0oZNp6Lo0J4amBVd12Mz9g3iGp0uj9VPi9z3TmCcqU\n+JhzNniJcIaPZxq0xoUkPgKcIEakCt/5DXXnuAacUo4qUwsC2b5QDm1pLJh+\n5t3IThQnVTO96Pwj8p6YsjPmwkz7xDmiTG4uFW4e6dPKOzg7C8s51TGU40xH\nFo5IkVvjfk/6qOaP6JR1iN/A/QFH2Lm2lseN7hMTRVXvFQdeXcu2ej1SfR6o\n3ZkSzhzMmM8guapGnrcd6H1u8SLHpzizgilUWMfFUpyhCyl++k3BK7rQW/8i\nrcgCT29D7gtOsQiXQ4AEj0iZdwKik+qdhoiojrh4YT4QWZSz2xP4wH2jp4aF\nz/HR5Q5dnJkdIwxdYBuoNwg8cvqFLW4bE0/LtAJtCPFMtdbmje6sJ48RRW9P\nKlWtL1Z2cqsTuMcPaZCOtyKz9rVeb29/9pffxCuK+e6F5x1cCuOgm4jd+hJb\nNWSl8jU+I2r7mmpO0ZOal1/9ei80fTeEejFEbVVNSJAj7715jyVf9VoKGXrr\n8CY5g5qFBG1BIunmZkXvJHKwh+w0Sd+fZOkmnxpEDteJrFjaNwCCHWyBL3lp\n08Iz6AxX+Dj3WxY3eUku6vte4VU+fVCD/bUtRIhahvkVM8oQAWPHrhQGBxVg\n1DV1\r\n=TR0c\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGEktppU+zkKDDbGbsF7lbyMQy7/Zn7ihb/X6TdM18Z5AiBKGkoZZqoOuCNFeWahKtTvpS56klc1WViRqUjsYOEpDg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.b6106add.0_1596660592813_0.3757344377297307"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.ebb4c667.0":{"name":"@material/mwc-list","version":"0.19.0-canary.ebb4c667.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.1b44b43c8.0","@material/dom":"=8.0.0-canary.1b44b43c8.0","@material/list":"=8.0.0-canary.1b44b43c8.0","@material/mwc-base":"0.19.0-canary.ebb4c667.0","@material/mwc-checkbox":"0.19.0-canary.ebb4c667.0","@material/mwc-radio":"0.19.0-canary.ebb4c667.0","@material/mwc-ripple":"0.19.0-canary.ebb4c667.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.1b44b43c8.0","@material/feature-targeting":"=8.0.0-canary.1b44b43c8.0","@material/mwc-icon":"0.19.0-canary.ebb4c667.0","@material/mwc-menu":"0.19.0-canary.ebb4c667.0","@material/ripple":"=8.0.0-canary.1b44b43c8.0","@material/rtl":"=8.0.0-canary.1b44b43c8.0","@material/theme":"=8.0.0-canary.1b44b43c8.0","@material/typography":"=8.0.0-canary.1b44b43c8.0"},"publishConfig":{"access":"public"},"gitHead":"6911337bd0577b48c85e4d3502ed5111b12a7b4d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6911337bd0577b48c85e4d3502ed5111b12a7b4d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.ebb4c667.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-+a+9GY+Bq9qFvcdI8/uhgJK9NoTsXZUPn5g8ErqI2KPdfdkVfk11jKOJSNQUuEMcvW2LGM/FTveNogb7vgKBuA==","shasum":"facce02b5496989e3dc9c10be89b47b43a0487a8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.ebb4c667.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfK0yGCRA9TVsSAnZWagAA3RIQAJunCMj2aCp3CG1yMuH8\nu/enkiT+TgrZpyvGmtwRJuJI/v1G2Ruwxz60G6lRvkh6ouVbh1mlV/u6Y+4i\nT17B6+GbJvVVw67z47RmonSaZi3OrLdA3DUwJ32weqDOev3YcPJ1djQQ/vm/\nN00beVjsViboeDHR2BxXIrvdbcafGC87WfcTLqO/j8KsMjzvHTwPDuvaDoVz\nYHHZkQrEHD8fnD+e2uAbvHvcBuwu7ejNIN4RPHZgdJVYh1eFOZ7MAkW/dAsj\nrmDesnG+AU3YHE9sikx0iOTnzN3+hUSbp8IHMtEEy9u7p7yc3yHmatZX0SlA\noZffll2Vo5dN8xYdvfkC71yolVfNUCnnRk31OkVQhEJMdXC1HGqlpcnNh/mM\n/tqk6+9lo6YhX6AhOhYcREIp+L2y6wQf1BFGqIz2l0nHP0jvo9Xdqb3KgL8D\n68iZqvzvHLdOH8gj38ebapMGm1zH9rfHF14ujsDqZjzfdUt1DpiXVmZd5AWk\nQB1yk0j3E7r3l9k/XHbvHWLIFPEs3igOF9Gy+PO1pav3F1u/86dW5Ffo060C\nnxZmQIU24LZ/m+uBBK3Se829viGGSmmPItKyQ5DuGQIrw0RetKGLMjBbPfiu\nm+wUnDx8hF7kVsTmKxMoEnhG4iRNfteDkPJLDx22vQM1lplgnwbDRjHsCG/N\ngrw2\r\n=KgRS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICLuHC0YJdI4tcfpCE6fZVBYHXoyjPxIausktaAaEcW2AiEAil4sa4G5gYJLdVL14DzHqqDoxNFhLgRMmYjvBcNDyQs="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.ebb4c667.0_1596673157750_0.7379341545674081"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.aa44289e.0":{"name":"@material/mwc-list","version":"0.19.0-canary.aa44289e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.1b44b43c8.0","@material/dom":"=8.0.0-canary.1b44b43c8.0","@material/list":"=8.0.0-canary.1b44b43c8.0","@material/mwc-base":"0.19.0-canary.aa44289e.0","@material/mwc-checkbox":"0.19.0-canary.aa44289e.0","@material/mwc-radio":"0.19.0-canary.aa44289e.0","@material/mwc-ripple":"0.19.0-canary.aa44289e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.1b44b43c8.0","@material/feature-targeting":"=8.0.0-canary.1b44b43c8.0","@material/mwc-icon":"0.19.0-canary.aa44289e.0","@material/mwc-menu":"0.19.0-canary.aa44289e.0","@material/ripple":"=8.0.0-canary.1b44b43c8.0","@material/rtl":"=8.0.0-canary.1b44b43c8.0","@material/theme":"=8.0.0-canary.1b44b43c8.0","@material/typography":"=8.0.0-canary.1b44b43c8.0"},"publishConfig":{"access":"public"},"gitHead":"4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4d74632e3e1fce6fddaefd045c8f0b6f026b4e4c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.aa44289e.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-Gx70+wxp2VoXH/03LzSbEa3iL9G2bBPZT6Z0Ce09NYeIPiovUsWARw85fNAIlSDPeV3HU0TGAX403xCLCS1qBQ==","shasum":"0b6408c274376e06c847eefdc02eff3c96f5befd","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.aa44289e.0.tgz","fileCount":80,"unpackedSize":925973,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLEupCRA9TVsSAnZWagAADMwP+wZY0aesGM9wypKUXfRz\nxSALJ0R9DtKq7J5DB7C+Jv0xOBRuI6a5fAnKT8tcJJttkOPXy2cULJIaP6HX\n+6ghntyywwOiprI9EPvvXQRNydTTrlVxA/TOhf/8Zr12hUy0nA836573/qqb\n9SjQZouh926HosYC4zOYYpuzd0ZttlP6JLEgMY7j4jtZ3i8yjonw8Cqpxs9u\ns5WRtVpz+9cLhtB5XEzGzvg622Q3NFwwGwreu/Cejw1+13wqPbdu0m5wID/s\n5t3yx9ZYXitD44tQ1QVqsw0na7eaSsMZ6Hh7cDSvIJQ42RgZMGMAqhdaxJAk\n11Bv/tV+ZxcZHZyjNpO3RsIatBSdvLluyoSVkqSHLaGG57zKIj/rtQL6fi4k\nFHYc0MW6Gx5kYroW7jJpsD4Qgd/+EVLLyG25xMpVx0cgftlhZ85lGYxbPI3h\nQmT306y+R5bZNJSwtuQD/6T9kiSo7coq8Ebg1riYy+KLHGo1uH+Xp0fKqLG2\ne4lqbDgsmNVQjDcpD4HxmABxJTMMqIlbbwBz4aIQUmhyZhkaO6FR/sTeFnEP\nLEmM4oOwh+4XfzlRS3TQxTuNKDmOscl8ngpkm9DjHP/hHuiXW/W4Yu9Wutkx\nd4JmLA5O+oATHSUOv7d0V4Vo0qGSUYyUuxHapG/sFQgEilbOGHP/2Uxqn8Fp\nzA8u\r\n=7fuN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHPzjbq0kmV41QeI8XGyzdSvGwvlxih51za88TOywaKwIhAObpPNllRvX2SDDTUqJJmqIs5Bw3qM2pMhvbn8p+82Vr"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.aa44289e.0_1596738472773_0.8438947383769402"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.e6b0816b.0":{"name":"@material/mwc-list","version":"0.19.0-canary.e6b0816b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.96a640534.0","@material/dom":"=8.0.0-canary.96a640534.0","@material/list":"=8.0.0-canary.96a640534.0","@material/mwc-base":"0.19.0-canary.e6b0816b.0","@material/mwc-checkbox":"0.19.0-canary.e6b0816b.0","@material/mwc-radio":"0.19.0-canary.e6b0816b.0","@material/mwc-ripple":"0.19.0-canary.e6b0816b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.96a640534.0","@material/feature-targeting":"=8.0.0-canary.96a640534.0","@material/mwc-icon":"0.19.0-canary.e6b0816b.0","@material/mwc-menu":"0.19.0-canary.e6b0816b.0","@material/ripple":"=8.0.0-canary.96a640534.0","@material/rtl":"=8.0.0-canary.96a640534.0","@material/theme":"=8.0.0-canary.96a640534.0","@material/typography":"=8.0.0-canary.96a640534.0"},"publishConfig":{"access":"public"},"gitHead":"b80bf3f3363af2f1b704d5fe2fe2852cd416b902","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b80bf3f3363af2f1b704d5fe2fe2852cd416b902/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.e6b0816b.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-nc5iCYR46dFDp/L5Zc+r4oa37Sy+Pxqnx++BqhxV1E7F9pCPNj8Qi4h2jPiwu3Y82jZlyC7bEXHY2S45jzYGbA==","shasum":"601780b82ccc4d085bd32bc5b2589504fe31973f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.e6b0816b.0.tgz","fileCount":80,"unpackedSize":926045,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLaEECRA9TVsSAnZWagAACLEP/3PcUOTzz0ttkfK4ICBb\ne3QzlribjC+L+w2VS52NM5sSmHEpxg9i84IiEP1PfLlBgWSVNRMT0jGectFl\n+m2rZcc9GTwbdQ7v5iDlheBn7dGjL8J0wHDnZx9qfyoaV8HuF9SExOSUMmfA\ns+OkhxvlppxQit4dY9eFibZ5T9bDHnm4VL6aikJr8PeeNHNwyVxJvMSrqXHa\n6YEkpaNHYAsB8UVuLz/0kiXXaSbl+tlV4hWifbmOt7IItxxn8+BvSdue1s/L\ndRnkUgJEqrYVUwEciuaH7yVSOU7eFU8Rwh1wWRlh6Bqj7rwIom2B6+Q+rhxr\nM6p8BNMqR7jbYXbErYm5XduY6Jlc0ECWkBYt6S6I21W4MjawtWBQiRwXdn4g\nbvVBdKUZCvGvRhM+t+YofF8Q3Aq6HEXoQb6tE/wlpBRSIEuP7jglnP0Pvl9k\nwN1Qg6qYW+1kwls55CsBiSJJy40CR9DYedtjif6Rc4GwpcZztcofJW6aYYJX\nmybPPY0QP1VvADUeHQ1J94RAqU2W376aGY2m3c36Zt0u4a2yYNciGinKcmSI\n/HiDEqaUzz7YQbFBPZJT2a2WTXyK9l2OQB9akuLBZOkz5AleZ3UwGruKg+1F\n8mBUQKl3Oiht5KNo51dZeo4JdrthpSodw9RZbqdLHtQKJPIeQuX1m0qALKAS\nogXv\r\n=4bOQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFcqEBE5rbDHTA1+yF9kiJf+ZxzFB3yi/O1H9qLENLbQAiBc4LQDeNpJlFNz/To6A+Bis941jOMOsCD80i7/MPAyQg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.e6b0816b.0_1596825859581_0.45210523765433086"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.96d15938.0":{"name":"@material/mwc-list","version":"0.19.0-canary.96d15938.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.96a640534.0","@material/dom":"=8.0.0-canary.96a640534.0","@material/list":"=8.0.0-canary.96a640534.0","@material/mwc-base":"0.19.0-canary.96d15938.0","@material/mwc-checkbox":"0.19.0-canary.96d15938.0","@material/mwc-radio":"0.19.0-canary.96d15938.0","@material/mwc-ripple":"0.19.0-canary.96d15938.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.96a640534.0","@material/feature-targeting":"=8.0.0-canary.96a640534.0","@material/mwc-icon":"0.19.0-canary.96d15938.0","@material/mwc-menu":"0.19.0-canary.96d15938.0","@material/ripple":"=8.0.0-canary.96a640534.0","@material/rtl":"=8.0.0-canary.96a640534.0","@material/theme":"=8.0.0-canary.96a640534.0","@material/typography":"=8.0.0-canary.96a640534.0"},"publishConfig":{"access":"public"},"gitHead":"6e91207d87648ea038ff3d435537ba7b2014ec19","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6e91207d87648ea038ff3d435537ba7b2014ec19/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.96d15938.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-j0u0huub/thikCtZxVKpv70YQpQNbTwW0/QWUVLIAAR6nwPOPCzcYfk4WCwtUqza8qUs8V0nSYSAjyC+eZYGdg==","shasum":"faf188289f8a3032ebaa9c5abbe33d9e6c5bb383","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.96d15938.0.tgz","fileCount":80,"unpackedSize":926045,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLbmiCRA9TVsSAnZWagAAjdUQAIzOU2J3nX9HeYfaSbHe\nnDWYwBm5iKsxJtVAfddjrCkj1t89SDCjQf2Q94Kf5cb+P98ayFOjl9sPNG33\nTwXK4mWZLHot3tkvhsVDppLe4kyNde+Gib4JF0XA/g9RjahpnORECq2EA/Q7\nuSgnDonZH4NNECWsayOxv2bl7HM12c5SPQ3HIduOMSpDZHLgpwH3xoGHIF2a\noGZ2Dti/SkrGh9nsuj2+FOozb9Q1+p+bfNHtLsi0n9C62yP9f8L9Ht0y/HYm\nHcg5kdxPRCZjPvsplWfz7kSe/xWmKvruAYyDZ/LlC5/Ldvw3SXw6LAvtgP99\nKe+RnGs9yfSJXkoGeQJP/58t7xVzdg1h2gcv1kCEK3KBrgCOCSjHQnx4uS5M\nLEaPWOTR6lgpbto341jUyg09rGZmOBZiKdhIHnEdBIdFrYqwOCroT2S+n98N\nvlII2/EUFAJQnfEkDdu+7cj8z8JpLVPtoQ2m+4TfydAGGsR0s0OipRHjBdFB\n93lL6kfGhMs1Br490bK0T9oA9TMqqx7cSlE09/bFC2gcAetTlPGnsoWbIWEj\nZSWmGFr2+Pjch/1uRZXuozhTe2NK0jTndBPzHdrm3jkNHUSve23CLzP7AquS\nCTpufD3PXzDweQwrkDHeiP6qwKT+J9PegxBK2FXOUPKT4yFUpKDy4D294kpp\nA3Mr\r\n=AU4B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGD1KHwVnoV15P4gOx800N/oSrfjA6q6RLZonSfw6WAhAiBv5ed9trv9FQWaWkTNdRUHWXQfMd5tF+m1C6nyr27paA=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.96d15938.0_1596832161927_0.24004954830440117"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.9d991c8c.0":{"name":"@material/mwc-list","version":"0.19.0-canary.9d991c8c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.96a640534.0","@material/dom":"=8.0.0-canary.96a640534.0","@material/list":"=8.0.0-canary.96a640534.0","@material/mwc-base":"0.19.0-canary.9d991c8c.0","@material/mwc-checkbox":"0.19.0-canary.9d991c8c.0","@material/mwc-radio":"0.19.0-canary.9d991c8c.0","@material/mwc-ripple":"0.19.0-canary.9d991c8c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.96a640534.0","@material/feature-targeting":"=8.0.0-canary.96a640534.0","@material/mwc-icon":"0.19.0-canary.9d991c8c.0","@material/mwc-menu":"0.19.0-canary.9d991c8c.0","@material/ripple":"=8.0.0-canary.96a640534.0","@material/rtl":"=8.0.0-canary.96a640534.0","@material/theme":"=8.0.0-canary.96a640534.0","@material/typography":"=8.0.0-canary.96a640534.0"},"publishConfig":{"access":"public"},"gitHead":"b96115b555701f0a2fb8299279aa9dfd1bf6b4b6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/b96115b555701f0a2fb8299279aa9dfd1bf6b4b6/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.9d991c8c.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-wibG54ou8I+e2kXA9geXEvRPF8vezDNRuRSHMBPr/SSJMR1oLHXn5CweEjtmHhOXfuovDczxvVj/PLSQQ6trQw==","shasum":"2ece011cbfdd4ff6fa69cbea9cb4972dcac38373","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.9d991c8c.0.tgz","fileCount":80,"unpackedSize":926045,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLdD1CRA9TVsSAnZWagAAvOwQAIEaK9nLCsjsMqA+nrYM\nPk/N//W7Nv+Vq0kLKknXCjLuE8NMoZ71CJNU1B6QXmMFiuUFGjBIfmaK/ZVU\nZm/XtlSxEwC2JuGS7QeLOvKbFl59Mu1XGMzxkV/6TJ8UOoQKr5yMDndQBF31\nLTcDI3hegn/YUE2fb9Q4ApVV7bPYV0beaADdEdhTis3kVWWfuoHatF1az+OI\nDUWuV2Svf4ufUzv8WRH2CoLLV9R2gmnOwu5+zcs1bLKlpW6IoY+XrCoNpcQu\nWrxvI/d+Py3UaeeCbONqVyYKLjyZoGjN957ST5xjePdDjoRJLzdNXqCze2Wk\nyfdsvHkfu+vqPihQG5XqDIfQX5tX49x0gFh5im9lHRK+5K9YUBJyjxjmHAiS\n4QQ3CFiwGN95qdcD+I1YL3npGYPGrMFeHao+kfYIo85V9J8CTPWsrSETpbaH\ntp3OCHWdin+hnIOZQmQKxMvd7A+LWlWEcfmP2uuPQSFOInT+JVfW3LicvKM1\nDjrvOvgnYX97UzxwIh+r6eqREofZWYtHOPRLfPcJqLBrSQPSSmW1t2O1MWBz\nXHc8qgt5UFyLgV0LV44cWeBAZn7nkGmrJjg7/ROl3MTY9xrYfRLG+S+LYIoB\nGpSQMRXiyADYEb9f2IsYMggylK1ysm5MpL/leK71+d0ICNivk9ELarI7KT9p\ntwHw\r\n=Bruq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIERkRo7hERVUWMoWORXzM4qaxrhAY3+Am/PXCABXBPqMAiBAOZx1YZq8AZFj/vIQgCST2v4YbmCnhh7CrCPiUCeImA=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.9d991c8c.0_1596838133140_0.09374496917150976"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.13bfbd72.0":{"name":"@material/mwc-list","version":"0.19.0-canary.13bfbd72.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.96a640534.0","@material/dom":"=8.0.0-canary.96a640534.0","@material/list":"=8.0.0-canary.96a640534.0","@material/mwc-base":"0.19.0-canary.13bfbd72.0","@material/mwc-checkbox":"0.19.0-canary.13bfbd72.0","@material/mwc-radio":"0.19.0-canary.13bfbd72.0","@material/mwc-ripple":"0.19.0-canary.13bfbd72.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.96a640534.0","@material/feature-targeting":"=8.0.0-canary.96a640534.0","@material/mwc-icon":"0.19.0-canary.13bfbd72.0","@material/mwc-menu":"0.19.0-canary.13bfbd72.0","@material/ripple":"=8.0.0-canary.96a640534.0","@material/rtl":"=8.0.0-canary.96a640534.0","@material/theme":"=8.0.0-canary.96a640534.0","@material/typography":"=8.0.0-canary.96a640534.0"},"publishConfig":{"access":"public"},"gitHead":"801272b0ef15e1f90e0ba47c6a8d185052f8c48f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/801272b0ef15e1f90e0ba47c6a8d185052f8c48f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.13bfbd72.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-KiPBf/EaB04BDrysKikf0TPJhLhJUmJ3KDCWjTo3JuTWZ3pI2R/GTFxrfcfZgnfc5QMxhKzA0UPbhv957Y20gA==","shasum":"c4c533457a577123ba6f2c9ec5d67f168ba7ffc3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.13bfbd72.0.tgz","fileCount":80,"unpackedSize":926122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMZ+4CRA9TVsSAnZWagAA/DsQAImwUB7sBF3an0YNz2Pw\n3tN8D0HQPX/ajxPGjF6/hTQvegWqCLFe6bA0gjU97UaBpxfzOz2Zl5Sh6kgn\n9cByJrMXGAckNw6/S0J/DupDYENxdxbEDBRsUYtDjQVNw2MW0TUamRdHr3Vf\nPZPtb29gWMgvdF48EzAUrHNi3Gzbg5C21MQJxXT1EfBz5MGX+RV7oPvmXQMh\nQebC1xhVwU4xHV13TopaxUwggOynhCptAnS+dYMB34NWasfDbJSD9ekXezqx\nOioFgyJT7SpX+SZeGbGzI2DDc1BPbs3Ne5+jK+WXnVF/gJKcsRZcapthWnjz\nJrsO2C71NhLf20jcH+7r9TIyPIJbNOJ1St1GGvRPG/tjfPCfFofewkUHyh6p\n+CaRrn6QYVoK8Is9Kw706vPL/iOiCz4SHMW4iI+S+pNkVPwFbfHOTB9cblpr\nA52N+TvMovJrKI0ULnVQJcqz08RQAiBBkQE4Mj2RGj84+R7gy23k/BfQPrue\n0xMpm6IM+HsbOT/DweErQ2sAOdm5dMElbRzIDx+nbS9sklKJyr5TXtM90jld\nc8W+OkFMTxyvRTN+5BXnNg6uNlpbIhrLYMdpFNMqbCBJOB6zn0/K3tJZdAgn\na4zXJ3vJ7Lszbu2Oj/0POFc67Y+j+oJhR9KtPvnpukdbynk+pBGn/fqm9cPx\n5b/Q\r\n=kE31\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCC57GejAg3CvwRThRwNu7rhIy6lu/oc6bAc2hpfvmrLgIgFSS8P4Ia8FYxyNYlkDv08fbGQNmrA0AmYKMjPecf8jY="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.13bfbd72.0_1597087672053_0.9624994438461647"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.30b1b258.0":{"name":"@material/mwc-list","version":"0.19.0-canary.30b1b258.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.96a640534.0","@material/dom":"=8.0.0-canary.96a640534.0","@material/list":"=8.0.0-canary.96a640534.0","@material/mwc-base":"0.19.0-canary.30b1b258.0","@material/mwc-checkbox":"0.19.0-canary.30b1b258.0","@material/mwc-radio":"0.19.0-canary.30b1b258.0","@material/mwc-ripple":"0.19.0-canary.30b1b258.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.96a640534.0","@material/feature-targeting":"=8.0.0-canary.96a640534.0","@material/mwc-icon":"0.19.0-canary.30b1b258.0","@material/mwc-menu":"0.19.0-canary.30b1b258.0","@material/ripple":"=8.0.0-canary.96a640534.0","@material/rtl":"=8.0.0-canary.96a640534.0","@material/theme":"=8.0.0-canary.96a640534.0","@material/typography":"=8.0.0-canary.96a640534.0"},"publishConfig":{"access":"public"},"gitHead":"e34fbf2f01b3504b83592cfdb8b30914bad24498","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e34fbf2f01b3504b83592cfdb8b30914bad24498/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.30b1b258.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-Zf0N7Ji9EE9S6ZZ+vX3LSS9QsQMMJvekwaq/Z44yCwyIEVjoX3Y8D+RiiHzZ032FYfEJ35ykPVh/tqc0utShJA==","shasum":"6bc62796b25bda415be45d27b12dd9e456c82cc3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.30b1b258.0.tgz","fileCount":80,"unpackedSize":926122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMaj+CRA9TVsSAnZWagAAdJYP/jM4HK8eO15KtCDKKX8G\nxtMD5HZqzJOsdixNaMtCLdP2aikV2ZS9rhTz3jz4OSl2FXcSmycI/qzhj+/B\ncf4TBPcvq1VJKGrkDTo3Zsc8yMXjpNgpqqB2N/Chek1aJ121UvyYkTkX4qfY\ncgf1N8o6Q8JtORhIE3HLnSv5xLXPnDTmt34k4mTteWCHyHczGxFl4h947mNX\nF1/mu7i7xYmM5NKlrMTKU+EJfeo3m2j8uSwjQHABt8n1g0z8dr/C4qa5lrc+\nfK2GBJ5rNWq2MiJ/khrWxbVH+CQkuSJl7WThazf/UxIAZ0SGo0hUpLVLImQy\nJleWGWAGmi6Q6tq/0WO03jDyMqD7NKsE0yzYUkUiBnr1bQjHRt5hIyQF46Vg\nq9tgf9BbO/Jp/fsg6Jv9mQG0pIVliDRgvGpMKkC9N9yKtApjMA/gyZyvPpA2\nVX86Ll6jXJlxErLeGVVIHPra/5m+RaJjyq+irmOw3V1Sw2s/gQ9Dhjy+/0Vh\n8ZiR0px9sse0ZJyOZ7lyQfqOG+A06oJjQ6+fEkPPqV6TAgirnXVWQTwTDZlc\nsY6zBfrPSiFsVQdqSlCdoXh+PwOT1ZCjav96kE5HPXgidT9nBxxBBInc59VG\ncBt9/Eyq/3PVd7VO3ZsS5asGgjwISjpux/Y49DoJ2sHo3FS0B/bXxecr1+go\nxio4\r\n=PLKO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDwcN7JeOuC6+7Xcahb0u4Fdly5hvCs5JqAnWizNHd8GwIgSRIv8X8Dba1SjQB6hm+lKn/xPfmG5yL558qPCy1g23w="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.30b1b258.0_1597090046226_0.7292577450330469"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.1583e263.0":{"name":"@material/mwc-list","version":"0.19.0-canary.1583e263.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.85a5272df.0","@material/dom":"=8.0.0-canary.85a5272df.0","@material/list":"=8.0.0-canary.85a5272df.0","@material/mwc-base":"0.19.0-canary.1583e263.0","@material/mwc-checkbox":"0.19.0-canary.1583e263.0","@material/mwc-radio":"0.19.0-canary.1583e263.0","@material/mwc-ripple":"0.19.0-canary.1583e263.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.85a5272df.0","@material/feature-targeting":"=8.0.0-canary.85a5272df.0","@material/mwc-icon":"0.19.0-canary.1583e263.0","@material/mwc-menu":"0.19.0-canary.1583e263.0","@material/ripple":"=8.0.0-canary.85a5272df.0","@material/rtl":"=8.0.0-canary.85a5272df.0","@material/theme":"=8.0.0-canary.85a5272df.0","@material/typography":"=8.0.0-canary.85a5272df.0"},"publishConfig":{"access":"public"},"gitHead":"e9ee447b02f2731c33f126f2c3d32bc3f2808125","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e9ee447b02f2731c33f126f2c3d32bc3f2808125/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.1583e263.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-4TdnjFMWqJxpBlT2kRiVcyPc5f1DpfnJ9oneRGhDiM5+K2NhcsMOEPP5deqU3O0e7FG7/oPlVyjTE7+MS5oYPA==","shasum":"256f0f45f477e8af9801c8698cb3d5703348bff0","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.1583e263.0.tgz","fileCount":80,"unpackedSize":926122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMyWRCRA9TVsSAnZWagAApg8P/2Hui9DQG+SLaXRYjcZ4\n4d7iJOqgLChNHLx+0wjfdqn/SS1HnOcw1rnsW7BElFauu6FVlZafbAZb64B3\nL1vagaizsJfpJmAHbKTc+xUjcLQLGdXykzIxs+QFT/yjYDDKlYps7pA9HieS\nSAmZsS4BtZDFzf7GuIlPuYx/j79LxNii+Bz+Swqc2by1mq8xksEs/WXlYHNn\nqlB2b08C5tgkteXFihbHiIiIWjhh0Wa3S+BCgZZEKhaxd5QIZNk1oKSe7gd4\n0iflXVaiW1aCS4Ts64bs6P4hApWy/FGNg5hgEEpf4CgvNKHJ6Nr6WM8myBkc\ngzS7j+g6kfFRk2qx11bANxDfGY7WJslP0lL/4OX1hN6Dap0jmJXkW1g3+755\nvsVrXgVgPi+4z5tP1AvKATVSsyAalvLKqQGBhVSG1PMGd2zE9Ey02iuBRCiT\nEpjZKQJSa0HVLzLEvvvQG6fAIdtA3thX3jOv1RnpJalyaKZkQFj6udXPNaBx\niyrs+r5Dkg+NZSFexelRjwOC56Fi/qBydngeAprbycyqh3UX/lZ5k3+0SLnD\npTxSfqlz7YWzKpOCZFmz/J7FBJjrsPCmRS2VAvDjg9z7a9+lV3BCGjfwcbs7\nh7rgnFh3SihqBjhtHZm0e9esMguGnSyfwJWmtNfKNUV72/4KQvr7YqqSfsOK\nCuAj\r\n=m1C0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGW3GghZkWIaApWvqt5A/mNSQGI4b6Z+OSjOlQ9829sqAiEAw9hjGzV3nSh/bhuUoN836bVG50qMky6Q3yLewK6+V+I="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.1583e263.0_1597187472733_0.2396335701637935"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.fefb1a93.0":{"name":"@material/mwc-list","version":"0.19.0-canary.fefb1a93.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.85a5272df.0","@material/dom":"=8.0.0-canary.85a5272df.0","@material/list":"=8.0.0-canary.85a5272df.0","@material/mwc-base":"0.19.0-canary.fefb1a93.0","@material/mwc-checkbox":"0.19.0-canary.fefb1a93.0","@material/mwc-radio":"0.19.0-canary.fefb1a93.0","@material/mwc-ripple":"0.19.0-canary.fefb1a93.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.85a5272df.0","@material/feature-targeting":"=8.0.0-canary.85a5272df.0","@material/mwc-icon":"0.19.0-canary.fefb1a93.0","@material/mwc-menu":"0.19.0-canary.fefb1a93.0","@material/ripple":"=8.0.0-canary.85a5272df.0","@material/rtl":"=8.0.0-canary.85a5272df.0","@material/theme":"=8.0.0-canary.85a5272df.0","@material/typography":"=8.0.0-canary.85a5272df.0"},"publishConfig":{"access":"public"},"gitHead":"328a8921a50cd0f162f89703f12a9e58406fd111","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/328a8921a50cd0f162f89703f12a9e58406fd111/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.fefb1a93.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-bpooEV/rCvmLxVqcMIbbzPzksBr00OHOUxgyyj+0YXNPXGPpxVF6dw1n/a+bb6sTHzQIrvPn3SRU/m/ECOUndQ==","shasum":"252e325188ca5f62a8b304dc7adffedd5fef73a4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.fefb1a93.0.tgz","fileCount":80,"unpackedSize":926122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMzcBCRA9TVsSAnZWagAAAQ4P/Rx8ILYP3VjEpm7kfnhP\nPMXpxaYLoqvy0u9Py03X8AjkxD0e21Cy+q8DC8lwH1B6fYl2vDR1GcA0wGt+\nZE2SASiPvk9/LluGYsE5/S15PR3B9DRJ8pUxPelWLLQv3BfZuwutbKaGUfcO\nn3cqnqYvVvf4jV9ihmTckBCk4drIo9ciQkPee7eMOOtNrPPcK2nJiLeT7FoT\nRZJ38EB7SzYKTn3fYi91r8cMbjPl/QHl9c6kvsYIou82KmbFu2FYSVJfqYME\nHzyIu+exLKtsoyLtU6LEfRCI3cU5QToiVGEhkD2QGRyVhUg63Wd+locdzTYG\nlUxBV0StcuaD0nBClZZdDCRXCUwchSI6AIajP7AUX0uIqluENX8scNpbZIG6\nCitx4+7MhyiHib9SO2Wgm6Iv8fRoGrpv5KZTPk3gTn6BzADA6j6j0BycIUpH\nolf1u77kWblKPiR5XaOH1vv/WSj2yhHH8ZInP2NmY0zflXcbxc2DEGrDSkS6\nLMUsOOK8in9Pob8Nw3b9h/aYNxod5iXaDvN542bOe0j9+lrKS4T6dR4FRAS9\napBOx8123FJhvYwuWUXlYVxQ8nZ1cT+WL36DKTBRl0w4y30A7qOOrM4eLahd\nkH8i4JzRRPi/VQC90jJmA1VQP+kAuaCHpv/hsMu2DUIgBgw4b9O45e5iMLKc\nX+RX\r\n=oe3B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC2yxEw1ilrzk7EPS8aPWtVaSje4+FLmvdGfY1nWwwlBAiBIE35WPoDU0cWaxdl95aie1IrPYyu7Ze+f2AVAe9grpg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.fefb1a93.0_1597191937526_0.42122032245024044"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.1ac5b9d4.0":{"name":"@material/mwc-list","version":"0.19.0-canary.1ac5b9d4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.85a5272df.0","@material/dom":"=8.0.0-canary.85a5272df.0","@material/list":"=8.0.0-canary.85a5272df.0","@material/mwc-base":"0.19.0-canary.1ac5b9d4.0","@material/mwc-checkbox":"0.19.0-canary.1ac5b9d4.0","@material/mwc-radio":"0.19.0-canary.1ac5b9d4.0","@material/mwc-ripple":"0.19.0-canary.1ac5b9d4.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.85a5272df.0","@material/feature-targeting":"=8.0.0-canary.85a5272df.0","@material/mwc-icon":"0.19.0-canary.1ac5b9d4.0","@material/mwc-menu":"0.19.0-canary.1ac5b9d4.0","@material/ripple":"=8.0.0-canary.85a5272df.0","@material/rtl":"=8.0.0-canary.85a5272df.0","@material/theme":"=8.0.0-canary.85a5272df.0","@material/typography":"=8.0.0-canary.85a5272df.0"},"publishConfig":{"access":"public"},"gitHead":"33bc5db0b752b7e0d3710150fbb0449121619692","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/33bc5db0b752b7e0d3710150fbb0449121619692/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.1ac5b9d4.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-bvw58MpjjDkVKzoZPcBkr/f67/E7kBriwrm/oosO4RFbTyQEzRiMd0me3EKcaFFr198GPB0/rH7+5KJ09njTVg==","shasum":"a774e97cb0091ae07025e815abc5dcc22b15e5d6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.1ac5b9d4.0.tgz","fileCount":80,"unpackedSize":926122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNDSpCRA9TVsSAnZWagAAGOIP/iXm42IWqYx52HhtJkOC\nJOX0tvxbBgLLnKq1x0UmMUzs4IvPBgl24kQdNj0/SNfIh7MIbv0Ib40b8fbQ\nRlPfaPrfhT1EerbB+AYxlnfiV+Mf/KiY/EVObbYLqfwnJV32jbM9ptLfo8GW\nRBDQqh3lrT7SDfpxsD4Nu+6NXieBB5f7isdO9SqyN+w/P8PyASUqJjSXDyIH\nIn3mnvFnsLJfqL70lShetbz5xx133XohATUXbv/xuGLkHLr8/SM977E2gzyb\nN6bbGO83wXc1eZsfgeHWXhT36h/QaO7W3GkA6VxWWQu+QO/E28+MnBdQaxlw\nEogPbS6YaSfygOpwNIisWe45fAnI8tEmXcj5CYXQtlfcdOfI3LBK3+/03Xwk\n6u/wF1uV7jPDbBYCaGkY8LFc80s3zMo1B6aeCFUWU121BLign8/ah8EIm7SK\nTgDZQ+G4eJtBVFKWpguEhfXJGAuLn10+V87g8cFRUCbGLzjnR2LRMmZVN9Pt\njEjdVhk3CUSjPtMAweylO8v8Gvu+JfTRfV0wK+4MNb1g3FM0kg00bNALtCK/\n5CKV/lNiQeDCyGZiGOMDjzKAZZTZm7d+dljkx7pfG8aE5YJFvEybUzM/wIrT\nvNAl6cqY29BE1UqNwf2ZKwOUgjEx6m3FsygxPIHHNc6NfR+2NvRE/B1yAzGL\n4L+0\r\n=w7+1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB3Fv+YIup1lUSDu6oRz5fczYBq+s4JTT2KZR5KfBP4OAiEAqwNsPZeAiLbOhr3nPw2E4q4Xz1hT0W0FoVNrNzDucYg="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.1ac5b9d4.0_1597256873217_0.21483358399452923"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.f17f5052.0":{"name":"@material/mwc-list","version":"0.19.0-canary.f17f5052.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.85a5272df.0","@material/dom":"=8.0.0-canary.85a5272df.0","@material/list":"=8.0.0-canary.85a5272df.0","@material/mwc-base":"0.19.0-canary.f17f5052.0","@material/mwc-checkbox":"0.19.0-canary.f17f5052.0","@material/mwc-radio":"0.19.0-canary.f17f5052.0","@material/mwc-ripple":"0.19.0-canary.f17f5052.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.85a5272df.0","@material/feature-targeting":"=8.0.0-canary.85a5272df.0","@material/mwc-icon":"0.19.0-canary.f17f5052.0","@material/mwc-menu":"0.19.0-canary.f17f5052.0","@material/ripple":"=8.0.0-canary.85a5272df.0","@material/rtl":"=8.0.0-canary.85a5272df.0","@material/theme":"=8.0.0-canary.85a5272df.0","@material/typography":"=8.0.0-canary.85a5272df.0"},"publishConfig":{"access":"public"},"gitHead":"837a87ef49533f905c92ab0aa9faee12e51ea3da","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/837a87ef49533f905c92ab0aa9faee12e51ea3da/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.f17f5052.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-SYZ7PpDDxSD4TBn+4rSM1yTJQwdkvVX/u+vTWJ0m+4ySV12zQhMVaiuJpKiMIgGbJsc7hDBcwxumgYONPdh8VQ==","shasum":"1b22e7843c329aa4d21e2a10f4adbf5bfab4db31","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.f17f5052.0.tgz","fileCount":80,"unpackedSize":926122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNXUWCRA9TVsSAnZWagAAqp4P/2jsdT+zJsL14sc7kL20\nA/Kf2JsG4GZWO6fQLq9o2kgSsdPtYKxgMjfJi8DjA71puX54mlhV7BVy4I9c\npfrfR0FKSad/9FCsuOvHzg9oM6gFC6fDHue4XhKVer0suKcxZJXq39ZFnbKt\ngt6aD0tCQKvDtd5qclDCWN96qm+srMYgWsbqatT8QvgnDkQGUP5CQAEX5WNN\nP8lFnGjdKdllIWE2KO2DkMAMgjdXrss4fb5ve2LuZ+OiMJPy7xnrdd0apC6B\nAnJni6cGMqLtSFEBfSRRmCBN+/uv7gEVR9QxJUWBsMmCgdHGyjKnoHS0V09i\n2fj5KWPXzDOC13DFvOeaSAyHxL1V8Zuz44MkFkVPzEyTapbjtszGRKfrlfM8\nllLmlFpiqBwrJVrBDmsYcmv3+y3wDCPRC5P6ITA5t3w0mjzupab5+s3LF9GU\n3wAYtOtMgu7oWPlv3CKT+CZyFqzVnf7MNdSh1PWWMC9LBmAcqU3/nCrDpSna\nl7gLz/iydf0YUQwd6fcZIcC8bv2DnjvugUqwh3/yn3xgGjd6x3bApcJBrhVt\nMuztM4mO6z+8OlxquRIm0J8/dWRmjnKTNE/kl+63McOU2C8cDHp7uDB1LQqF\nvOxE2JFiztKp4RMpV6gwx9h23T8c4LFCHvVipE+mg5QmFwpoti6SoR+gNbpq\n+tNS\r\n=VIkr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDaELukOx7GG6se/wEMQFiUiOmW603Y56bDVuibG5CwJwIgbpe2gVH0iIQ8YaO/CM6A/fG7o1by4Ggod14FA9UQlb0="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.f17f5052.0_1597338902147_0.11505009449559078"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.80b5d20d.0":{"name":"@material/mwc-list","version":"0.19.0-canary.80b5d20d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a1dcfe97c.0","@material/dom":"=8.0.0-canary.a1dcfe97c.0","@material/list":"=8.0.0-canary.a1dcfe97c.0","@material/mwc-base":"0.19.0-canary.80b5d20d.0","@material/mwc-checkbox":"0.19.0-canary.80b5d20d.0","@material/mwc-radio":"0.19.0-canary.80b5d20d.0","@material/mwc-ripple":"0.19.0-canary.80b5d20d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a1dcfe97c.0","@material/feature-targeting":"=8.0.0-canary.a1dcfe97c.0","@material/mwc-icon":"0.19.0-canary.80b5d20d.0","@material/mwc-menu":"0.19.0-canary.80b5d20d.0","@material/ripple":"=8.0.0-canary.a1dcfe97c.0","@material/rtl":"=8.0.0-canary.a1dcfe97c.0","@material/theme":"=8.0.0-canary.a1dcfe97c.0","@material/typography":"=8.0.0-canary.a1dcfe97c.0"},"publishConfig":{"access":"public"},"gitHead":"2183b66216f3cc82a57427b3aa805795f18e0925","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2183b66216f3cc82a57427b3aa805795f18e0925/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.80b5d20d.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-RUoSy98SO1r1Bm70cHJF6CQgHVpMplQlUu/tdX/cJkEvEirNuTTuI9FAcghcU/3XAEPSYFlDTwKCN/XjZYuKmQ==","shasum":"5abcb9c1b6afb3fe54ac5a2ac08b6d45c14f661a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.80b5d20d.0.tgz","fileCount":80,"unpackedSize":926122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNYPKCRA9TVsSAnZWagAAwT8P/jBzPtuOu6Itl//8fFIA\nfP0TqOFTIp49d3qD9/Q/4WRcXFZUaxXejsJWF4gW18SmfVFjQT9qwpyTki96\njk3ORvA+o7DnuHzzePFiPrAem/oTNa0XLKKVeAD0EaGR9RvHeU/9IzTrN+4O\nSZg2DLlg7Rz5BQX210bcrYABYyxdKyz1m4dVMdhL2+ZxKwwia6prhfDCkPRl\nwpb3KVQf2twVBjS6EfOq05J9A6ZaKkG7Ep/WGWi/RSdFTaHyYebBpAf+WnHw\n0ycPUCuWceW1tW6njsTcp92hcESsDlTIadF20bpA91dfl0S62i1PxPL7LnRS\nnoeL+F2Imzxw7GOHqtUl1oFUQh2QcSnpSpBTkn/WKZAjgYT618IimkOj52Qf\n2EAil5hWnbvlPeuwZUbitKO2om9vzhmI27KfLcGWm9j+fsqMMOQh4nIIeF09\nUkpKoImBicA3j2S4YjsnY5rS7ZtmlXhonLH3LoOpKnFsL8KHXhCMr7QXTpD6\noqcxkcSrgXdQfX7TD8GEKYbN9Fd3BXB6937F34AjbeAUDjRaFcHn1PoY5DsC\nYXj0NiDKa+b2Kct/DobX0M5cvHKRmlWS3IRpAvuXJ/25t4Wv3uU9APTRFh5g\nqAfo4GXvldIR5oOvuTpzC1A2JzGRhLb7Hkf+JGEnLfCWYhC6JPzwqWeQLOKI\nk1u9\r\n=jrMO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFAAjgOc7FsgxxLBFHD4pvozK+sUqPlMQJNljpuM4tt1AiEA8HYApsbQ6D0QMCBdFmeG5uAFNQdabZxcerU5bzN+qGQ="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.80b5d20d.0_1597342666023_0.4588783807070944"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.758635ed.0":{"name":"@material/mwc-list","version":"0.19.0-canary.758635ed.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a1dcfe97c.0","@material/dom":"=8.0.0-canary.a1dcfe97c.0","@material/list":"=8.0.0-canary.a1dcfe97c.0","@material/mwc-base":"0.19.0-canary.758635ed.0","@material/mwc-checkbox":"0.19.0-canary.758635ed.0","@material/mwc-radio":"0.19.0-canary.758635ed.0","@material/mwc-ripple":"0.19.0-canary.758635ed.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a1dcfe97c.0","@material/feature-targeting":"=8.0.0-canary.a1dcfe97c.0","@material/mwc-icon":"0.19.0-canary.758635ed.0","@material/mwc-menu":"0.19.0-canary.758635ed.0","@material/ripple":"=8.0.0-canary.a1dcfe97c.0","@material/rtl":"=8.0.0-canary.a1dcfe97c.0","@material/theme":"=8.0.0-canary.a1dcfe97c.0","@material/typography":"=8.0.0-canary.a1dcfe97c.0"},"publishConfig":{"access":"public"},"gitHead":"dca431ba367368af1f858369557a0bc5db6783e2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dca431ba367368af1f858369557a0bc5db6783e2/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.758635ed.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-ptW1UMvj9an6CegLjLlTneG6A8DaVIAH1wo2gqaW8t1/NP4zbRRtgivNx9FReHhxwlipUpC1QzDRcLrPQ6JjqA==","shasum":"76cba4bfc5acbf14388d7d4ac2d335a648caebd5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.758635ed.0.tgz","fileCount":80,"unpackedSize":925728,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNscWCRA9TVsSAnZWagAAvTkP/3K3ohmPsQC63n2Bci0I\nmezLSJx2rlYvRrVkcXTdihwvA0hyAlqSfMzlsAE55iVBtsDHPF0T9D4YTHUC\np1nMW6FzDhDuVicMtoHyg5lsKNeNrTvSdHQk30cH7ay6+ea5S05M1t4utWVR\nJO5Fvi8AHYkYkMKCMoCL8ZAMGl3mJYM5tcpcdqwbmALvFkZ1G3k0j59gJcg6\nhlh9nNJbAoUNdqQ2KVuWMtFbBCqWOxAz6k9PAS7vcRXsE6z3fIErsqZETjOH\ns6gCGj6vBVWLPI/TCILLdk3CpeAQI1zua15B4zR9N9osIbK5mQGrKV/ZbTox\nHO2SUhjUBTn/DUUzsMvwyQrmywvMtMqsw4bRZfhEnzZZeHGS8HdOha1ZuBi6\nmwBI6Z0/Sxe8lgjIrCTXu4XY77bEGaev8bLCIbkA6o0MAUtg9sLve0/glyQk\n2XX98bPZHCr620AYtGwxR6LJQlvVm1nbFFu6X4U4bCs6fd7auYbStsoBwSTb\nt78REXE9mWLxuu8Qo6Aw96XnPLY42hufhQN9cZNtS87/H3hlkUHps80ALY3u\nK+deKRR+0581qjZ+O3JRBV1xeRR9DfA/Wq/VPvCszhGR+q4CS7aEuOauCziK\nyyaUr15Y3qTwTSZoL/KyumraaGukfCt89bQ2dFwUZoqx9RKASvqtpTGfKkMV\n5voA\r\n=REyS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB6CWK/ID5T3ZUreouxaQGYn6p1QgK9rOxxlGGOl/EcGAiAWww5yfH+iU1xkcwK5Kc8tQp7vz4JSWCCdmfah18dnDQ=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.758635ed.0_1597425429427_0.034426346820609854"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.18d6b808.0":{"name":"@material/mwc-list","version":"0.19.0-canary.18d6b808.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.150f427a0.0","@material/dom":"=8.0.0-canary.150f427a0.0","@material/list":"=8.0.0-canary.150f427a0.0","@material/mwc-base":"0.19.0-canary.18d6b808.0","@material/mwc-checkbox":"0.19.0-canary.18d6b808.0","@material/mwc-radio":"0.19.0-canary.18d6b808.0","@material/mwc-ripple":"0.19.0-canary.18d6b808.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.150f427a0.0","@material/feature-targeting":"=8.0.0-canary.150f427a0.0","@material/mwc-icon":"0.19.0-canary.18d6b808.0","@material/mwc-menu":"0.19.0-canary.18d6b808.0","@material/ripple":"=8.0.0-canary.150f427a0.0","@material/rtl":"=8.0.0-canary.150f427a0.0","@material/theme":"=8.0.0-canary.150f427a0.0","@material/typography":"=8.0.0-canary.150f427a0.0"},"publishConfig":{"access":"public"},"gitHead":"7eb789f1eb17355bf97652cfec031e407c9e2fc4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/7eb789f1eb17355bf97652cfec031e407c9e2fc4/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.18d6b808.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-GZTIVUvp22kr8bGmuQb7NsaiNRLAC0fdKM+itOst6vyGztoo2QlKt3pzCY72Xu73hOWWPCE/AXLF2aEiYLa2kA==","shasum":"b11735721b3870a944f33bc7941991f8bf740cfd","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.18d6b808.0.tgz","fileCount":80,"unpackedSize":925728,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfNxlvCRA9TVsSAnZWagAAiNoP/R/IBDUCA7NB5rFxEby8\n97rv+b+IDprfAs/xEMNoWWfRm6x6GV3cAEYinpxF3jAFt/CwvRa4Q1au3NC+\nD/OSTC2IIGVV0J3jOF9Yrt6+CCyeYYUoz3KvE1EwUPnCAiDL38IFk02Sf1RJ\nF1kqQde6vxDfU8JAIxODNa9UQWlx1oHBAmP4lOOUw85+f2yuqZ5COgHLhNKi\nwIO37uOEMKyjagTZUwmWuGkvYQw+d0thAySpyBaBju1FTTURLyoLlIeg8bxJ\nRhS+QTl7cCRi5u4fh+tyi16NOJvR3rhVKNNbgwpIQCkulZQtW+ENIbuQWZL9\nhTij/Ld71sNUwdByTR2MHwynnk/Ih0cExq9RWl5MrAqxW8UMUrya2ZP1oanB\nUmXuEpSdOFvvD/569lC9W109Gea4FXDu7BUYa96M0+j8vlJFb7tU/6+40JZb\nVpFUNo8csIOV/E3tOpP1PyqzqqtlC8xdkTyUYMlGJs5ZyHSiovtOwXRvEoXu\nQtt1OVuwR6G4m7rwcL/UflvUmASdl5cVDoeiSMuzWxf+GVKm9n2Dk3z6a99U\nREoZaZV3weYvUw0HaQjnmc1k6uxUKezA8cq8OBPLojDQO5MkVTOFUL5QTEjh\nhqfU5FCQwVen1G1azCdgjvYXwZBL6ju6LvjV8uPN1m6/CALafJIcY/Yptjz/\nFAIX\r\n=I4OQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB5hkHMV6uSJmgvYupjPZCnppjPjFE/rHTGvJlALYlEKAiAlqJpo704LyvEbdgXBTnOCoQeDWLTm0fctgVxueCgDvQ=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.18d6b808.0_1597446510802_0.8514282237064092"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.5f8ffbd1.0":{"name":"@material/mwc-list","version":"0.19.0-canary.5f8ffbd1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.150f427a0.0","@material/dom":"=8.0.0-canary.150f427a0.0","@material/list":"=8.0.0-canary.150f427a0.0","@material/mwc-base":"0.19.0-canary.5f8ffbd1.0","@material/mwc-checkbox":"0.19.0-canary.5f8ffbd1.0","@material/mwc-radio":"0.19.0-canary.5f8ffbd1.0","@material/mwc-ripple":"0.19.0-canary.5f8ffbd1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.150f427a0.0","@material/feature-targeting":"=8.0.0-canary.150f427a0.0","@material/mwc-icon":"0.19.0-canary.5f8ffbd1.0","@material/mwc-menu":"0.19.0-canary.5f8ffbd1.0","@material/ripple":"=8.0.0-canary.150f427a0.0","@material/rtl":"=8.0.0-canary.150f427a0.0","@material/theme":"=8.0.0-canary.150f427a0.0","@material/typography":"=8.0.0-canary.150f427a0.0"},"publishConfig":{"access":"public"},"gitHead":"c230db638d0171f7a47ff1f312ecc123b9bea4e3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c230db638d0171f7a47ff1f312ecc123b9bea4e3/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.5f8ffbd1.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-hWt6C2VPaFGaf2ntBixXY/3KqSlv9Grte/9POiOR41KNB+KekiskrZZ9u570qiV/qbMmof81QWz4GFFlBd0PcA==","shasum":"6f9b43020134a53ed8d05ed2730fce3bfd6fc5d3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.5f8ffbd1.0.tgz","fileCount":80,"unpackedSize":925728,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOwGnCRA9TVsSAnZWagAAbdwP/igM9g+h0kgm9tk4pfIs\nGvXIZZL6iiwfvHR8WWvE+j86yGv1iqzbDtlWAuZnUldUA4mRppIFe5jrzFT5\nHe+tEIMy6WHnC4pLVbnndaWriERhOTO1vNRHtDN4U9D35VIp+dNWGtz2b95A\nychESi2k/3FprNwo/Wrplr0mLNBZQ00Ng8jV+NvvTkYZJoCfYSMdQ0+vbOSi\nGoJTB6RUlRCKhxL7YtZSCjWY9lBiynMBLw4rYf72qHk4xISr3qfWGO1d+/mc\nGGXEwIkIP5HoBiK08fuhhgKb1QQ1KRKqNh/jhvkKgczjwQlUZb16KYlNvxGq\nh5dDJt6xpNsb086I1twofEubaAS0cRZku+ItAMVfvjwdIYU3MuZux9xlNFJt\n69XaSrG8M1ZiUP8NafQ7D4psF/2jzcYPTrjWl0wbWu0uZiPzjoOFfZESvc54\nGJbCGNwgGLtz2VjlOGELNLTriRai6UC0TRAkk6u5OOB1DF2pf0WmEneP5/vX\nWamKaGC+IkVIFGaGv+kBlpuW0+E+4mnb+4jTlQ7LfVUsjum1ZEwJDMdupx1V\niSOJxy3cWUEODxZ1iQrOyCX0ZwJ755ecJ1LsDOqKij1gwGHwOHSjLZwDMDP4\nTOiH8u3B/ewuhO1H3DhdGhhXIPfzYQegZ12nW1pkVFAcHVRpQeJBq8Vx05to\nRug2\r\n=p7VW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGIINPeyg1PKPrCZGmoaE5HqEti5tKHEK8Va1TRxjfruAiEA8c7HoIucCcFmkolzsNuC6vtW7TsrcWINarZ8uvSDEOY="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.5f8ffbd1.0_1597702567338_0.8596232778087978"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.8604d59e.0":{"name":"@material/mwc-list","version":"0.19.0-canary.8604d59e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.150f427a0.0","@material/dom":"=8.0.0-canary.150f427a0.0","@material/list":"=8.0.0-canary.150f427a0.0","@material/mwc-base":"0.19.0-canary.8604d59e.0","@material/mwc-checkbox":"0.19.0-canary.8604d59e.0","@material/mwc-radio":"0.19.0-canary.8604d59e.0","@material/mwc-ripple":"0.19.0-canary.8604d59e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.150f427a0.0","@material/feature-targeting":"=8.0.0-canary.150f427a0.0","@material/mwc-icon":"0.19.0-canary.8604d59e.0","@material/mwc-menu":"0.19.0-canary.8604d59e.0","@material/ripple":"=8.0.0-canary.150f427a0.0","@material/rtl":"=8.0.0-canary.150f427a0.0","@material/theme":"=8.0.0-canary.150f427a0.0","@material/typography":"=8.0.0-canary.150f427a0.0"},"publishConfig":{"access":"public"},"gitHead":"6b87d240089846147032623e302121a478088f7e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6b87d240089846147032623e302121a478088f7e/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.8604d59e.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-lmLgwe0W0iqvOALKfPxmInkcD5tmn8QxWUHXtF6XsY89Nq9BrLAfCWP3BohwLpIEIVTW51F0q0/bOoK8InZAYw==","shasum":"2229d3d87e5034145f61bfa595fd3cdba7686ad5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.8604d59e.0.tgz","fileCount":80,"unpackedSize":927100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOyjQCRA9TVsSAnZWagAAD5gP/A96jEk/+mykdWCDYmDi\n3wYpNu+r36NVPdMZ2Hrpnuf3C9u8WPyiUhVzz5D3Lb/FpnaSmRN2pSaMzcll\no/VpXwkhFafhoGhJcFi1GKws6pDHy48joTu7ew3KUiUHPnYN8/0ovtBZ309+\nGbkvEkcrCQCMstwYcf0X43Kw8u/g4U1MHWqrHII1qGLrzqPJzXOWH+oPO+S5\nE0Za0SVV4/p1KzCs+mHV4YUHJiW2S2YGXO0NaKXUPYzF3Pqbdjhl18jAOotW\nwWBZeu7le8Tgs3BkfowbVaaGetFk4N/6jPbDnaeh2PI1Up3lxX2+ywckOwtl\nIxg3hMJeiHbnml4SxNgv+8+DcNvismInrQILhLpQzbqzI/l7p/JymKTxF+rf\n8GO+OA25aJo86skmK8oE5dDlh0wgr1hTN04+2nSQi1bZgtNk+E5EGkMCQ/aj\n3oQS1Q87aLbCnnufwugtaOFyP70l1BrgSKdKaHIEg1MsqElJsku3OVzwpU0S\nsnF0/A19oJ/fINYDxRMRzqDXvnjz/9sgt3fyAp5wi60djFdxxbRRF2hIDrFX\nWQMnI/93l64vwFuEeY/uiRnmabN+HQWmc9FduE5uqtTsQmuXl8K6Y3sz/epd\nXeehPAqeab2LbxmNJU7jnhLgH7gxOotoCvXWd5MfvRQpGORj50t/RWxvjWSp\naSZu\r\n=T1GL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTAuP8+p6NwG4Sv/Z4Zy2BoYQ0RraGMfaMqVeNBe6E5wIhAJ0j7DIqUjvAp/1T2RsEGB+w6ql9h89rhPtekPGbanWO"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.8604d59e.0_1597712591568_0.3417431378061695"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.1d7d5e34.0":{"name":"@material/mwc-list","version":"0.19.0-canary.1d7d5e34.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.defa599a8.0","@material/dom":"=8.0.0-canary.defa599a8.0","@material/list":"=8.0.0-canary.defa599a8.0","@material/mwc-base":"0.19.0-canary.1d7d5e34.0","@material/mwc-checkbox":"0.19.0-canary.1d7d5e34.0","@material/mwc-radio":"0.19.0-canary.1d7d5e34.0","@material/mwc-ripple":"0.19.0-canary.1d7d5e34.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.defa599a8.0","@material/feature-targeting":"=8.0.0-canary.defa599a8.0","@material/mwc-icon":"0.19.0-canary.1d7d5e34.0","@material/mwc-menu":"0.19.0-canary.1d7d5e34.0","@material/ripple":"=8.0.0-canary.defa599a8.0","@material/rtl":"=8.0.0-canary.defa599a8.0","@material/theme":"=8.0.0-canary.defa599a8.0","@material/typography":"=8.0.0-canary.defa599a8.0"},"publishConfig":{"access":"public"},"gitHead":"e5b1904570278e726a75457dd1d8c9a30c98669d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e5b1904570278e726a75457dd1d8c9a30c98669d/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.1d7d5e34.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-/ee9oZ7tzZmIWvF6o+JatW9k3h281rksbeRByiCdcbvXvTuoXzstMnBN/QpRLMdV/ujjnSP8Rz4d6jqr+Mt2JA==","shasum":"34cefda5519352096b5c07c1bc034ca36eb8b1ea","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.1d7d5e34.0.tgz","fileCount":80,"unpackedSize":927100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOypGCRA9TVsSAnZWagAAt54P/jOFaHcq9zzrSoSPcVx4\nBUpgl36c541KjA6X8Ccvzh8oIjY6YhSksZ5C2N0Dl4YgLWsdT5lovUw3pcX6\nrDO9WNQbG1BT5szwIJJVDgj0eIwfpB0dyIfXZHJkpfk+UwUmNuq4bFjKAg63\nDDgNUuoiKat0QQ9YpuObCkDWETIwdd8j4QEgLy4gtQFEjB5WanyoOEwRY1ZB\nDSkKG+c2/kgDIqV5QNaEO6/TtRA2fg1b5sGMING+P3guTEK4D2OVlALqS73k\nPY6G4JJubsEtFhbJvYs7ddeXF+DZa92MwleSOg3FHwS5Dbnhy4tG81CJ7/Zl\nm4neD8M25b+jpnbRkZC+XyiQ8kgOqdsNNO1BmLgtqlsjY5E6lfr2JHhzioMc\nvwG2atbm/oem5WDm8o1pT73UXsGC6ehXGVNVNvR33951JZupLFIQHwznMjuE\n5ASwYGJPAjQX9vut33z7wQo9tF8KFoqT2cIvCYaHbjJPmY4LPET+sQtTsvF0\nwjSeySwV5UZQ6Sh68IruF0cuf7DR0AQ/OBFXR8MIaAjNAdj/I2SBp+mcdLqZ\njp2nzjEsatHOEKMstwfiRQRAKAPdganrP88c3T02Gl6htMCzq3+Cnc+mvlAe\nhgE6jNHBtSWgJG4G0B1UzCFfhD5qufkhsv7qIFdWJ5hoITkoU5HLY+2ZAHtJ\n8G+Y\r\n=hfGy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFooQ9FoXJwSqK/38fuxs9V2wGLCAu2deLWhAVE74y/NAiA3vZF3NH88TI69Jm3zodGbRlGE2F9qAWC1uDDMLfKxPg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.1d7d5e34.0_1597712966473_0.5004124483399444"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.9cc95c07.0":{"name":"@material/mwc-list","version":"0.19.0-canary.9cc95c07.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.defa599a8.0","@material/dom":"=8.0.0-canary.defa599a8.0","@material/list":"=8.0.0-canary.defa599a8.0","@material/mwc-base":"0.19.0-canary.9cc95c07.0","@material/mwc-checkbox":"0.19.0-canary.9cc95c07.0","@material/mwc-radio":"0.19.0-canary.9cc95c07.0","@material/mwc-ripple":"0.19.0-canary.9cc95c07.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.defa599a8.0","@material/feature-targeting":"=8.0.0-canary.defa599a8.0","@material/mwc-icon":"0.19.0-canary.9cc95c07.0","@material/mwc-menu":"0.19.0-canary.9cc95c07.0","@material/ripple":"=8.0.0-canary.defa599a8.0","@material/rtl":"=8.0.0-canary.defa599a8.0","@material/theme":"=8.0.0-canary.defa599a8.0","@material/typography":"=8.0.0-canary.defa599a8.0"},"publishConfig":{"access":"public"},"gitHead":"48f9adf6b09d7b2532669f3bb466d2dbc3970990","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/48f9adf6b09d7b2532669f3bb466d2dbc3970990/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.9cc95c07.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-+S+WsCcHyu2hL2uBe/pLQuVGCB9wprZSkAud3Tsu68pyql/0Raal3d8SnWnVKB7kH1ICiYbh2jMNmNdffoAzyA==","shasum":"308aecda5e84393a7b8ec1bdbacc467db07543bc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.9cc95c07.0.tgz","fileCount":80,"unpackedSize":927100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfOywSCRA9TVsSAnZWagAApREQAJAaKQ6Q/S9ZxaZcwTSY\ngAs0Sc3B4DsNkrtSoeWq2Wmp6000yvl9Lww1mzs2HW1t3Ad93Z4ZxVJMOWK4\nhgYKXULHsNDY3BSFz2p1w1pXk2N+auwnqe6MJ/9cJ3vIOgtRKi8r1V6ZXyiV\n2365NszDj3GOb/hc1oNl0dwEcSe60ztfW4B5lGi4Md5h7njCYc2oxiZlqIFf\nvsKueIUDI87fLaHbMyNIkJM5oAFhG6szhlsT5eWDthj26xQnnW7DYz+uFlmL\nVwi2bOX/0hOXBrqWbdsIA1RzNXzMtJ4FfrkmES5xZcnm+uDmBhGZ0SOMc+On\nsqzFBvghyWxXpLkdhSI1vHAblMEH2mdE4YUM50fa3aVt86EjbHjMefVtaBpV\nl9aWcUVAGv1vQGI/FBN+kaRbQJqrt1DIZPXWhysKN0u4xgs81KoPa3ZfIqD1\n3NBvngdOxDKU0JbE6Dk56hTkIRiFp3z714/X7J6R76a9K5DzaDWdxUFgjar8\n+F9jjDu8r8Alapey2u29xw1iEN8M/2vSNpdycRtOVfnPzNnwKew8XgOSw1fF\nkDrQ8SiCWs1wM009sUP/FnpufuCqo0DprkqEJGTAqdWVzmEcT22onyTEJ085\ncPnJ7qIqFJwvkw3/l2NHV8Sk6NFp1yJuLHTGxxwMQCe1CqwMpDxYZ4LsnYrs\n3vvF\r\n=YPPj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAbzJaoG6MsPCW855aAoCgUXCC63Afs6IF36eirVQYHzAiEA6fOh6CvYV0sKFsblUaS7U0dUmGE0xtPFb/57kBYKzWg="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.9cc95c07.0_1597713426267_0.7978880626132738"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.9f65ced3.0":{"name":"@material/mwc-list","version":"0.19.0-canary.9f65ced3.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.defa599a8.0","@material/dom":"=8.0.0-canary.defa599a8.0","@material/list":"=8.0.0-canary.defa599a8.0","@material/mwc-base":"0.19.0-canary.9f65ced3.0","@material/mwc-checkbox":"0.19.0-canary.9f65ced3.0","@material/mwc-radio":"0.19.0-canary.9f65ced3.0","@material/mwc-ripple":"0.19.0-canary.9f65ced3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.defa599a8.0","@material/feature-targeting":"=8.0.0-canary.defa599a8.0","@material/mwc-icon":"0.19.0-canary.9f65ced3.0","@material/mwc-menu":"0.19.0-canary.9f65ced3.0","@material/ripple":"=8.0.0-canary.defa599a8.0","@material/rtl":"=8.0.0-canary.defa599a8.0","@material/theme":"=8.0.0-canary.defa599a8.0","@material/typography":"=8.0.0-canary.defa599a8.0"},"publishConfig":{"access":"public"},"gitHead":"5aed2922c67f2ad7133772e74310e121b406dec1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/5aed2922c67f2ad7133772e74310e121b406dec1/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.9f65ced3.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-XJierdrPrxAlIj/fhPP1344ZkDOx2PTk0BWsRpyChOh5xZ4N1G7euavIacjOO16PiXiQ/Ls5hIWuiTxvWtMoTQ==","shasum":"dd9153c64811dc09a0a2827568251b1fc80ed5f1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.9f65ced3.0.tgz","fileCount":80,"unpackedSize":927100,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPDcpCRA9TVsSAnZWagAAb/YQAJpme4h/KDznaziTR3u7\ncyNEofUHtewbkSDpRXUFE2DTpc+4oKq3oEGz68aYcvxSO2z2lqvDETRPPCwP\nIHWrrWfrp0Wbb9dBCEwEwZDvwUqL1xfJKU+0oBjHSzrJur16P6ym4wb/FCyo\nMXwg7o0Q823gRP6eYndwR8JtX+zyy96pmYmj76+YC4+Hi4tcYgQR35ACsMUH\nhTyrfbHGFVJUen0s+s+xDyTQhBdQAHZtf8j+LLbsz2DjC1gMZaw+FwaE/LZ1\nQcbq01+WqZi2MojBmzUZgGbBpf5awehYlibLZA9f0ACY4+CjhAgazHz7lTJj\nY90YMScZcbqljSDWX5je9uZLmPWFJB+A7PjuWzyzjWx9VsTeeVIjLdcO6D4r\nh3ci2rHsi1W9o5djRcdjdWQhEf/H6gmmxfV0qkQTEK0VJfoKx+iXllTfLGiN\naIHVtLLj1aHQnc9d0+nn5BPl4KdGnHMtMi0e7jzOdOb3JRIiPviCCV12sdw0\nw6ItWsYlk5lnZJwuEiCJdGImbVcpxhWOpsDIEc8FJVLKHQ5WE3n6X084KA5A\nBoYaMW39fBMwtJR4r9yDPIP37ICC7rX9CPegsTnr7pNz2DyDudCBkhuXd7CI\niAk1YSuap5ywdLIPgKkenk/KqJctGGgsTvsJgBBjec97pcGuP8v2WyftyLJY\nmVAP\r\n=e2Dq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHwYYZMwa9EW3PgJjeJ3OzH/yOUhpHRKOi3GJqfgbl1NAiBcmkunzczdUmnZlVL2MaGBXw7+U+5WAmISo8yoxBnGrg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.9f65ced3.0_1597781801155_0.9282405917097856"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.5962b365.0":{"name":"@material/mwc-list","version":"0.19.0-canary.5962b365.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.66b8ed7e6.0","@material/dom":"=8.0.0-canary.66b8ed7e6.0","@material/list":"=8.0.0-canary.66b8ed7e6.0","@material/mwc-base":"0.19.0-canary.5962b365.0","@material/mwc-checkbox":"0.19.0-canary.5962b365.0","@material/mwc-radio":"0.19.0-canary.5962b365.0","@material/mwc-ripple":"0.19.0-canary.5962b365.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.66b8ed7e6.0","@material/feature-targeting":"=8.0.0-canary.66b8ed7e6.0","@material/mwc-icon":"0.19.0-canary.5962b365.0","@material/mwc-menu":"0.19.0-canary.5962b365.0","@material/ripple":"=8.0.0-canary.66b8ed7e6.0","@material/rtl":"=8.0.0-canary.66b8ed7e6.0","@material/theme":"=8.0.0-canary.66b8ed7e6.0","@material/typography":"=8.0.0-canary.66b8ed7e6.0"},"publishConfig":{"access":"public"},"gitHead":"454d30885df0a3162dac8184409307ee571c6215","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/454d30885df0a3162dac8184409307ee571c6215/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.5962b365.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-dPOMMUrVq/63QDFG7xKpPZSvcvtJhgnYAuQiOfUd6gQ+C1zG0zaIwJj9/MDbNhMLFwJ7ie74qMPmzuRiZtd0DA==","shasum":"271f824292deefdba837a31bbf0e672d50ec3177","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.5962b365.0.tgz","fileCount":80,"unpackedSize":927342,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPYuwCRA9TVsSAnZWagAAF1sP/Aq/DdQ/oGhtTDpkuLaN\nBYBhQmFrCLwV2dY0GBC+c2Fg1aPM2A8V3fAkCzPEy8Kz/QG7Im8I240sP9X5\n6qH/WCVdMiJvZ/f+6vi8HQDxwzsujx9eOunwc0qNQYaC+QhXV2XyDnxXaRi0\n6ubqN/Y6luHN81LBYwniwtO1fbtV8RzEVzSamBfx0grlnvOdV124+fCMTiZA\nbsgKuPw7Lb2v9vhYuYaZ4T4DwkgXBZqSrvvkaVw44tj53LDpqihoDtUZGJ8n\novzNFyNYgS60x+UNKKGxw9vKLmsFFXu5B1MU2OiTdeUmq5qi2k+0MUOVvG5J\nFvfhxjlNM8bjw+4hJefHlBxKUW/a+ors31L1StRbcHP5IXn059dC4VMtbms6\nA/pzFEBqqZAXzCWDjT+By9VkA+hLpYrLOmLUg5LAutC5N1yEfueIzEXb2pk3\nxxvcUZgf00B9A1XNy4Fdp2GNdi6tg9TKCxGa8qoKPQhSqGrOR4lK0NZZJ1Tl\nnGN2/uLPEH2CH+vk4k+4T+KJaQfFSaCh3nCBOmKP3U/U4LcBRAJPR1PKA8q0\nb3jk5/MCdOYydGxB62ILOLLBcOSvLnq/ZDnUiPdKSj47bE0qvGbBm1sKNNZT\ngGKqCe8cUaGB3qvRbgC/B0TGk7jlFrxBUX8OieMVIeWoR21GikRK+5uWFvVb\n1hgX\r\n=86SE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICIgtEbLXIcwfskrqKGBP5RYQzksUvqsq08wRt0rguK/AiAT5qhz8o2IfAmWQlpa2xBicaI1dU/s6CCb3FhA4Dbx6A=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.5962b365.0_1597868975672_0.9572984620588207"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.9c9ec756.0":{"name":"@material/mwc-list","version":"0.19.0-canary.9c9ec756.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.da72839f4.0","@material/dom":"=8.0.0-canary.da72839f4.0","@material/list":"=8.0.0-canary.da72839f4.0","@material/mwc-base":"0.19.0-canary.9c9ec756.0","@material/mwc-checkbox":"0.19.0-canary.9c9ec756.0","@material/mwc-radio":"0.19.0-canary.9c9ec756.0","@material/mwc-ripple":"0.19.0-canary.9c9ec756.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.da72839f4.0","@material/feature-targeting":"=8.0.0-canary.da72839f4.0","@material/mwc-icon":"0.19.0-canary.9c9ec756.0","@material/mwc-menu":"0.19.0-canary.9c9ec756.0","@material/ripple":"=8.0.0-canary.da72839f4.0","@material/rtl":"=8.0.0-canary.da72839f4.0","@material/theme":"=8.0.0-canary.da72839f4.0","@material/typography":"=8.0.0-canary.da72839f4.0"},"publishConfig":{"access":"public"},"gitHead":"4c887788f2cb30e8b788a5cb0a1a13dcb78a0961","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/4c887788f2cb30e8b788a5cb0a1a13dcb78a0961/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.9c9ec756.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-ZN54XYFSu1Ur7cSRjHL4cWePulHDNKUaEmqLu4wd1x197Z+ge8EBa1jzf9j8rt9xAXTBkfqhmEVpNYgw3iB+Gw==","shasum":"04c7a6c1e21dffdb63f75f60653650141bd9dc52","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.9c9ec756.0.tgz","fileCount":80,"unpackedSize":927342,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPsdVCRA9TVsSAnZWagAAHqQP/0N9AgWORxxB3F7Y5MhD\nqXoZgaQ1/Dxiq/cInYNv49T19g/+IVPxpIijylwm0QeAtezMnjsJfqWioQeF\nGtVa3bMZ1mJSFiG8GwANRu1vpyyNw3+T5HMWPXReHiehjhLU64dv20Cs/WYb\nI+v/0rcBsIJpvwTwJ01PZQPTKQ/O/lDrAyJpkaCOhfEczLUGS8qtfUwKjrjN\nLL6phKLJJG4K/670Uup7ZoVLJ1wiRoFnBKFoP6tH4rYkhh2Fs/tQzSIwVsjm\nowU4VCkIH5fhqskm4FQYN4yS5WDGFpDWWxQMyMVW7MeM9GY3NVPUOX++3Ewk\nmNCPkWBbqma9mlOrmsgOLd6x69bT0Mjckhwl49nWFe9vHP801mckj0tNsEFZ\n6kUQLypgTRug6SYoZOvCwZavrpU2Rbhiduy9uRQ0O/b/PqY1h6Rd/XiobsW+\nSF6Y8LjDz/xWduGp12vrtu3MvbaC0osUlS4S8kkUabDI/5nzmKjhFL41R4c1\nBuGDwTrOQJIo6RcYOlGWd6iD2VnghCCHCVsggipEk/5ubrmhU3qXQinDkjlG\nNr+5NCklJOjH6NsBANjjUyOHs0O+VcsBSZVwee74Ydu/Ow++gZ6qa35zLWkj\nbVgAleCLXorMHBwLs2OXvdrOKWd6Bg/3CVqlnSDipXsEMIDFpIJ9WSkwsNrj\ngrBh\r\n=tFFP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDh8qOsWM323otlfLOfBq73KZCwuuk7iM5XkLXywBEDHQIhANLsz07UK7N4yEPSeJDlNbSEp0RY3u+DtTEiiZkQ7lgU"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.9c9ec756.0_1597949781238_0.699718489772351"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.fa0ad66a.0":{"name":"@material/mwc-list","version":"0.19.0-canary.fa0ad66a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.da72839f4.0","@material/dom":"=8.0.0-canary.da72839f4.0","@material/list":"=8.0.0-canary.da72839f4.0","@material/mwc-base":"0.19.0-canary.fa0ad66a.0","@material/mwc-checkbox":"0.19.0-canary.fa0ad66a.0","@material/mwc-radio":"0.19.0-canary.fa0ad66a.0","@material/mwc-ripple":"0.19.0-canary.fa0ad66a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.da72839f4.0","@material/feature-targeting":"=8.0.0-canary.da72839f4.0","@material/mwc-icon":"0.19.0-canary.fa0ad66a.0","@material/mwc-menu":"0.19.0-canary.fa0ad66a.0","@material/ripple":"=8.0.0-canary.da72839f4.0","@material/rtl":"=8.0.0-canary.da72839f4.0","@material/theme":"=8.0.0-canary.da72839f4.0","@material/typography":"=8.0.0-canary.da72839f4.0"},"publishConfig":{"access":"public"},"gitHead":"d4020241262a9309827adc8467ba4c499bfab71f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/d4020241262a9309827adc8467ba4c499bfab71f/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.fa0ad66a.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-7u/vyKQSihnQ0W9kz34a8E4dwrvlsgLJkZfn9oCN1BxV4D3kkKDQzxJu+bHELDFOnuw0Ky+GP6ctjD12FOvOfw==","shasum":"bb8a7c1dbf8c90ea1c9bcda2b9812cf3c1563c87","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.fa0ad66a.0.tgz","fileCount":80,"unpackedSize":927456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPt6TCRA9TVsSAnZWagAAhWEP/3oluqY/z2s7esXrOSuF\nTVRQSwihaBTcaZmQmgAjVOAj7M9M7wrqAEKDnDlhzX04dv+1hx8CmHa3zW8c\n1ZJJQxddKcsRxwjnxrjYpyFtH33/LcyFn8gBzirExwLxf1yORj5SM6mnOi32\nDPmwtDlCly2ZHn4vx0AZGMyhtWIVHxDUqV3eimWhHYQmXas6JQb1T4oru6Uj\niPpZ9A6Cy0HwIYq8AYKithCMPsczGt1t7QbkVN3MuO+RMyJ+5JKwiYL1ao+k\n36Z2BKhJMcxle7reUrnIlEQC/r6SabqfjIDAKAqzp74lRGUDPaoVfYVXtv7t\ni+5Y2ykgt6sFLl6Hem/O9qqW23vUX9d9Thqb7xyZYVy97cetMCKFZom3j66m\n0H6rUKQ1+RDDM1qjeJgoyxanEqElschOWJH25cGcgonLhI1IGNPrTAfzO2dy\nZAm/kqI6ndxE1TB8RHSgoSMXYfvj8msBH5NoQyKpPgDbOau02ObibUawVmlG\nXVaqIc4CZfMRYtbagqxEua7KXu9z9BhQFYmdkMB8rtJDyLmg8JiMoSgTqval\nZPVQ0v8k9KZpJ9R87h3JF8sPBdFIKlwbFr95tDhc/2yvPbEuwXC4XHfS6SfE\nXRObId/qKkNR8eGquSGvxqhxsv3bv0+hlDL++pEL97psgwKGpPQTcwyZiwb+\nvdmO\r\n=x7Li\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDZ8luP1ZxJ1JCdNf0Bb3ICXLYjY7XSoADZNLHpHUt85AiEAiheOWcs0+NSMztxhwoGTKzZ2E/r/yjdbpSbJVV2zPL8="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.fa0ad66a.0_1597955730753_0.025670247613547748"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.06ecdd6b.0":{"name":"@material/mwc-list","version":"0.19.0-canary.06ecdd6b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.da72839f4.0","@material/dom":"=8.0.0-canary.da72839f4.0","@material/list":"=8.0.0-canary.da72839f4.0","@material/mwc-base":"0.19.0-canary.06ecdd6b.0","@material/mwc-checkbox":"0.19.0-canary.06ecdd6b.0","@material/mwc-radio":"0.19.0-canary.06ecdd6b.0","@material/mwc-ripple":"0.19.0-canary.06ecdd6b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.da72839f4.0","@material/feature-targeting":"=8.0.0-canary.da72839f4.0","@material/mwc-icon":"0.19.0-canary.06ecdd6b.0","@material/mwc-menu":"0.19.0-canary.06ecdd6b.0","@material/ripple":"=8.0.0-canary.da72839f4.0","@material/rtl":"=8.0.0-canary.da72839f4.0","@material/theme":"=8.0.0-canary.da72839f4.0","@material/typography":"=8.0.0-canary.da72839f4.0"},"publishConfig":{"access":"public"},"gitHead":"35a2331f3c8450d35506d4f0b54075d121a2670a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/35a2331f3c8450d35506d4f0b54075d121a2670a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.06ecdd6b.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-LuLGpN64gWyZUvekH1VQXiawh6pPw00lUZugJuekLau0kplFNw1R4EShX/0WjIHwH76h9BUMq7+C9cAq2KYXOA==","shasum":"f82d98bfca3474844062f4c2dda1ee33a245cf38","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.06ecdd6b.0.tgz","fileCount":80,"unpackedSize":927456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfPuxhCRA9TVsSAnZWagAAKyQP/3oE5RlpVocSRWeD2/4j\n/4BN74jEm/hb0d/CQDNoXYZocDe4RQXBGa+r/pyZ0sxD4Ykwnj30NTDoXv7f\ntBW0XhFOcN8jJijNH3M9YYG4yvmuBmjxgbMsjYv4jPujVIX32FwIje/zxk28\noG2NCgh7iaWFlrHdrlwhmM6pJl/BOrUHP6aCSU8j8ArdhuxF+oD9r7nB06rM\nvbfNR+IoHwXYygYA3ane55fd0jfHg0F+U4gMDyFJ6YJKdoWTmnaO2Vcd2xh4\nC5TpM6til2vl5U60Z6YreL/z0noS3VafMsF+GiPeYlURzGaek+/z5GRUJnTn\nRpmgcFJp6AVf9jGkVvwRDZJzGIp6HnaLNA4YsMnmPAVXTT7hgwwCFQ5BOVGV\nXWneyPtCYPaw3Z3NLflxy01VuRLrFxflKShQUrT7NqsKrpdadYs01nzL79Bj\nRzRLjUt4qh2YTYPnHATxsIX4RkHFeo/oM5pfkdFSfs5ghAFwcZXJs48glDTd\nrW1//h+282hU8/GEc/PGLXnmN0PaXyGjvWu/Rwkbb9JdTZiFc2NQy2IAQgUq\n5ULJYZ6eYSZesVTUqHrUlhkOZe6fAX/pcbp8uMhlw+pB9qegb5RK97u/n/P1\n5Mm4gAbpS+5rZJlZZamBAAUZkIDMrM1yebIEIDSl16QNAyeZYmWahHXxYwZu\nOd9t\r\n=P6xu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1j0htbqlxLC3xLiHD1VE/OIgpbRLW/1p6Ulq+zcuudQIhAOXX7vH0kJhFbBjyu5G387ka9mSPjkA2NDwH1aQJVU5P"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.06ecdd6b.0_1597959265390_0.3844487783008308"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.2bca2318.0":{"name":"@material/mwc-list","version":"0.19.0-canary.2bca2318.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.95e4eeea7.0","@material/dom":"=8.0.0-canary.95e4eeea7.0","@material/list":"=8.0.0-canary.95e4eeea7.0","@material/mwc-base":"0.19.0-canary.2bca2318.0","@material/mwc-checkbox":"0.19.0-canary.2bca2318.0","@material/mwc-radio":"0.19.0-canary.2bca2318.0","@material/mwc-ripple":"0.19.0-canary.2bca2318.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.95e4eeea7.0","@material/feature-targeting":"=8.0.0-canary.95e4eeea7.0","@material/mwc-icon":"0.19.0-canary.2bca2318.0","@material/mwc-menu":"0.19.0-canary.2bca2318.0","@material/ripple":"=8.0.0-canary.95e4eeea7.0","@material/rtl":"=8.0.0-canary.95e4eeea7.0","@material/theme":"=8.0.0-canary.95e4eeea7.0","@material/typography":"=8.0.0-canary.95e4eeea7.0"},"publishConfig":{"access":"public"},"gitHead":"2e3f0ca806ce8930df2251177b8dcedb9deaa8d7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2e3f0ca806ce8930df2251177b8dcedb9deaa8d7/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.2bca2318.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-p++vcNHFKcGsa6HtCtJy0uYZBzk5qIQfKnJ/JSSSJ4EKEzlbVtO745Px5PhaMKIcWESGtnslBf9ojhonQJ/kKg==","shasum":"ca6933e4d1492884f6f1540513d58c83f086692f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.2bca2318.0.tgz","fileCount":80,"unpackedSize":927456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQAn9CRA9TVsSAnZWagAAOqgP+wdlYGDIg89Mu8oEOajn\nqN/q5agBV48RniiPqct3qoo9YL65OU95ihDdut/4NBAdzcScaZ0SNqcLoU05\nhTAvpkYFidb3QWkXp6m0B3ZauE+Z653Qtn0pUJuYMOcY1oL6kSR2UYz2VIF2\naUEBQlzAffQqpQhL7n2tcYoAQuO3GF+jkWaRcYO9UOgu05Y/N0kFXXVwpQ/Y\nS/5QXWXZlHqNmYNdEc9lBCz3pdQDm+4x/Lbx2vMCcF7XzRyzVAITORIR/zUT\np3ISKw7tvnhHr8CoRUn0Qk3zZrr++BBYF1UFU5gG6/m6ipDpr+JKCzBZnTUw\no8HK+rQM7vxRbun2NSXfZKNJTgPRs9lSS85ARmBQ0VgllHkcN6fA325ZG0tY\nswpdPdCO1iZLFVxKLke89hLFuN1l64MjSOfHYDxbckHhScQ1tUm7ePUIdU/t\nrSVES9T4RlvY4Sf6taTWR8f/Gyd2T8CqFQ1GaNGcpS4uoZ5pKbma42qlscZu\nMOYkHr36loNU2kti589JCMasaGssNW+QbM9JAQTKUw3VrN7T0HkxUqHrAJnp\ntOW3Gr91TaAwbpA8vjk0M/Z2+6PYnRTRGVhcIA6Q1PjpNxlIqa/Q7Ok+1xqc\nv4QMhrGegChDxr18hZA4Ukj+VMqs+Lulxo2tjQK2fPwjwP+dLHAsbHOFBrZH\nQlpi\r\n=3Q2A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG5lWNPksBxg46nOSA4hEKJNQlxa5jeO4CjR1KipTqDYAiABJTL323IihQTriRdNOv45IKwhxmchRx3ibYXOLjBsEw=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.2bca2318.0_1598032380702_0.6597860144959355"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.6aa47265.0":{"name":"@material/mwc-list","version":"0.19.0-canary.6aa47265.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.95e4eeea7.0","@material/dom":"=8.0.0-canary.95e4eeea7.0","@material/list":"=8.0.0-canary.95e4eeea7.0","@material/mwc-base":"0.19.0-canary.6aa47265.0","@material/mwc-checkbox":"0.19.0-canary.6aa47265.0","@material/mwc-radio":"0.19.0-canary.6aa47265.0","@material/mwc-ripple":"0.19.0-canary.6aa47265.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.95e4eeea7.0","@material/feature-targeting":"=8.0.0-canary.95e4eeea7.0","@material/mwc-icon":"0.19.0-canary.6aa47265.0","@material/mwc-menu":"0.19.0-canary.6aa47265.0","@material/ripple":"=8.0.0-canary.95e4eeea7.0","@material/rtl":"=8.0.0-canary.95e4eeea7.0","@material/theme":"=8.0.0-canary.95e4eeea7.0","@material/typography":"=8.0.0-canary.95e4eeea7.0"},"publishConfig":{"access":"public"},"gitHead":"f13aa269065b757dd289dd89367756db80da1596","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/f13aa269065b757dd289dd89367756db80da1596/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.6aa47265.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-cArSVzgibF95IozzgpT7swyEg/uE7mE8VvlTGnBeXPTl3Qfy6zHkJo+K3einKRgV07dd1T0X9QRWmk4ST5QMhw==","shasum":"70f23694354634f65ba7e2e00d68e1e832fc42a5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.6aa47265.0.tgz","fileCount":80,"unpackedSize":927456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQA+ICRA9TVsSAnZWagAAL3IP/1HfK6XTyJUxs+ig3RgT\nJFJ2fAzgrVPPqGrfiwlCAPhIk1DEbX+XZNztuRJwl7dXI48M6c4VT8ckP5UP\njCE3tPCc+9hmt8knCNgxhIzEzAvs6VFENjcMD7unh98pGB4VHNMjpYjNcvd2\nntN12bnLXyrr7zaPb9et3oQk5SWyS2cIdTo39SXVFRPkjE84lL/mvgWclVFP\neeJeNCFU1dPA49iY8tGCBcKQFb2H+AwcMuLg02R1AKr3asKuwYvdLgwoxD5E\nWzlOjwpoS5AqMuySo44vAJgsJGviLcMhlFhmGwCAylBSe/dAQz3FalvJSqlb\nPdv2+GfdutAqv+WjvJtJAkA70+C4VoNvluwqD+85VQOLJ/iFbu1/8SLh2aMg\nYPoTjB8vJHatHCkZAa8GHjf2uBI4S5fIF0lSMUiY8yXrcCGthutcIGznUB1u\nEJv6qCk/kTpYqzsTgoueQOiCyMPa6tusknB85boBJTDdVzbi7t1vEqHhnJaF\nv35MFEkUEqnQS3pXi8++G6tVyt/RPwKHwY0FT4MGHSqOsAYGQYRSTv7Vb5vx\nhQlea+m3mb73qSl08RPyZNwmJZYu4yNUj33LkdlTpd6uATSvXgtqrtFtSle9\nMXkv0rrHPWzaRZRXnAtlQO5LvBK7dOfNtsdOgINX5Xtzn6Whdbpihc6Hikbu\nQlK9\r\n=IgvO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBYggizX4p3yYq7XVA92qSw3BrjtLRKWkkmdcBTw2QiGAiEAlv8it6GBrj36L2G6YusXzw0p9FcvUEgqRiwea5yQjfs="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.6aa47265.0_1598033800275_0.485765138470746"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.e7202a07.0":{"name":"@material/mwc-list","version":"0.19.0-canary.e7202a07.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.95e4eeea7.0","@material/dom":"=8.0.0-canary.95e4eeea7.0","@material/list":"=8.0.0-canary.95e4eeea7.0","@material/mwc-base":"0.19.0-canary.e7202a07.0","@material/mwc-checkbox":"0.19.0-canary.e7202a07.0","@material/mwc-radio":"0.19.0-canary.e7202a07.0","@material/mwc-ripple":"0.19.0-canary.e7202a07.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.95e4eeea7.0","@material/feature-targeting":"=8.0.0-canary.95e4eeea7.0","@material/mwc-icon":"0.19.0-canary.e7202a07.0","@material/mwc-menu":"0.19.0-canary.e7202a07.0","@material/ripple":"=8.0.0-canary.95e4eeea7.0","@material/rtl":"=8.0.0-canary.95e4eeea7.0","@material/theme":"=8.0.0-canary.95e4eeea7.0","@material/typography":"=8.0.0-canary.95e4eeea7.0"},"publishConfig":{"access":"public"},"gitHead":"9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/9c2f6251cc1ab7c3f27cc51409b86305fd50bd2c/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.e7202a07.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-C10VZthIvPlS3k8MOW3260TlXG7aVjNC/5Dg//mFydx8dFhcdHn/zhjptUUDaeyD+txiIii75CYiAk+8Qp0Xnw==","shasum":"843aa17ad8ea0b8bb8f15293e6a8512d5b19bb85","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.e7202a07.0.tgz","fileCount":80,"unpackedSize":927456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfQB9XCRA9TVsSAnZWagAA25wP/jpwC95RhExkkUq1MGVU\nqS+GrY9olNgpH+96HH0RmQfwf9EzWZYGuA7RjTeLkEH0Y/s1t9n2wt2VC3L/\n3pTAyASZDjSZHj6mEB/xOMt7LL1GnhL5fBS4HgO0wmUYePDRd3eh0FjNxAuM\nicQ/E9AgsxP/DZypN/Ssb0na9iAsE2r0Yh/AGSuOLpTQpRBVNEGHJUT+njD7\ncHbDb8fHtyjUyxRg3meL4WPaku/pccEQOag322ffZaamJIJ1BdkZSfQTqqVI\nc+mpMQqT6YypHfpob7CxfRmoOmPWTAxzQuHDRPHEb01Bz/Z7huR+AjGOsHJ6\nPYMS0Co300paLXlLQKi0nqbuog7wXQWRxPqLTWAWRm91DZft7FgLapD8ywYk\n5vG4a+Tz2DdLGDMl/nL4KB2aFBNqmS1AleL9n/j3VKWrUkFb41ZL0cMHFICt\n5JYw/8/k76c6qUr20rv/FF2uJIdFshAR1h52h0eeusk588q4iImGf2hl/tzv\nN4hFYTHfJEjyNrE+qoWj0FGDPv1BwwBdcvLr3+VTd2uqVL1T6Lapm06gTi40\n2JWttD6flxQMkPwIw/lLesF1EgwW3K/FIiloJAWqFftzxK+uMeaiUecmKQll\njNPxmPrgeKM4ylotMIYEXOXq03OoFX7UTT+aYtm/R+tD7kqArV7AtJg3c9pn\nwf8F\r\n=VW5k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDrjN2YYz/ZiuGz5N9bS2YLsPwiv0/80ue6qucOHwP6CAiASNOnaJC+LpX9375uqn7/AuJwIrL51FtHCyeBf8rabYg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.e7202a07.0_1598037846353_0.4790624818000342"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.f208201e.0":{"name":"@material/mwc-list","version":"0.19.0-canary.f208201e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.238216fc4.0","@material/dom":"=8.0.0-canary.238216fc4.0","@material/list":"=8.0.0-canary.238216fc4.0","@material/mwc-base":"0.19.0-canary.f208201e.0","@material/mwc-checkbox":"0.19.0-canary.f208201e.0","@material/mwc-radio":"0.19.0-canary.f208201e.0","@material/mwc-ripple":"0.19.0-canary.f208201e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.238216fc4.0","@material/feature-targeting":"=8.0.0-canary.238216fc4.0","@material/mwc-icon":"0.19.0-canary.f208201e.0","@material/mwc-menu":"0.19.0-canary.f208201e.0","@material/ripple":"=8.0.0-canary.238216fc4.0","@material/rtl":"=8.0.0-canary.238216fc4.0","@material/theme":"=8.0.0-canary.238216fc4.0","@material/typography":"=8.0.0-canary.238216fc4.0"},"publishConfig":{"access":"public"},"gitHead":"c666b3346918d8521008d20fa3c20b4cfe3ee481","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/c666b3346918d8521008d20fa3c20b4cfe3ee481/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.f208201e.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-KYfwNXeQ7ZbNKy4wv1rqRXHrmyUz2wL+YSOjwJ2C5gIbS8Td/h6T8U3i5zAKbfjQTle1GET3wPHniPdcb8WcZQ==","shasum":"4878a102dfe9a8f2fe20445d5bdcc7bba7e37267","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.f208201e.0.tgz","fileCount":80,"unpackedSize":927456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRA8PCRA9TVsSAnZWagAAomcQAIpaMy5Oa+dthqPqhlTN\nR6mYElKGZmkhbXiBZYyib/HVEt4CmAvNhBoVLw5IiAVTk2D1EzAAL8kObOxT\nJgpdLsuRoKD9vrZMQvSFjZXp9u4TkWUP9MZYmngUe7ixEWolMabQYE1jgVNH\no0U623hzhJEAUTCXhBj4pmlHjkIrrvDfNVtfTNN4eTBUl7h1hFxftqWg4U+G\nZYR8uG21kPg7lReX6qgypm1hf8ySPVyCjMiMNhzBVWjotUXf6JXsUFqIixNw\nWd2wqCa2DVMZNBTyNayrynng3C3p67FgwVuKgBEp/7qBPCTeZTQKjIX/Z4Y6\n7c02Zs8CW88RxLlY/3othHt91v5U2a2KoKP1fuMiz8O8jk3hhFw1Dged40H8\noHG+Dkx+BJresPohU9SoYNbY54d3cUNEcTnxCb+kNKST45Uue2YGQeRmhQhg\nKbeiYOb618hBUzikGbykHtYyNasxXJIqzVjINs/x2uQlziqtXtQs08kbLY43\nTmrV9wmSWbi+TtFXjsTU+82bkf3yVbkuBhHKlSMFUelEBACNeRBstFhidpd+\n/kQUyDBOezscER00FM7q/vwXP/ASNmGy7dTp8WfDQMaJw2RyQGTh1kXrzCvt\nUEDbswziMb619/qD3XL9NMkq4TGnlRMWAtnq3IKHFt7ObL32gSl+tRzBPvj3\nr7VS\r\n=fn7X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrcDOUlwVZItfOR8obOQC0fZHA9sWjNtnAhTTa7US5wAIgeO8zoTd3w/PU8L2pmr3lZnXbtH2uPd2Fxk8qISPlyW4="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.f208201e.0_1598295822276_0.1082093545454359"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.14a172db.0":{"name":"@material/mwc-list","version":"0.19.0-canary.14a172db.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.238216fc4.0","@material/dom":"=8.0.0-canary.238216fc4.0","@material/list":"=8.0.0-canary.238216fc4.0","@material/mwc-base":"0.19.0-canary.14a172db.0","@material/mwc-checkbox":"0.19.0-canary.14a172db.0","@material/mwc-radio":"0.19.0-canary.14a172db.0","@material/mwc-ripple":"0.19.0-canary.14a172db.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.238216fc4.0","@material/feature-targeting":"=8.0.0-canary.238216fc4.0","@material/mwc-icon":"0.19.0-canary.14a172db.0","@material/mwc-menu":"0.19.0-canary.14a172db.0","@material/ripple":"=8.0.0-canary.238216fc4.0","@material/rtl":"=8.0.0-canary.238216fc4.0","@material/theme":"=8.0.0-canary.238216fc4.0","@material/typography":"=8.0.0-canary.238216fc4.0"},"publishConfig":{"access":"public"},"gitHead":"dae488440593f3d8bdddcbf01a3a6b5343d88761","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/dae488440593f3d8bdddcbf01a3a6b5343d88761/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.14a172db.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-LUIVQ77zmvBhkQAI0zyH3COOA+/3vUa1k7DF+F2zY7JLV6DhzeZvC4DSDLhmvqdAMQQ33ReRwl0BKRJGtqT9KA==","shasum":"3c853c95018cac60cb0bb02631c7810312949ce3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.14a172db.0.tgz","fileCount":80,"unpackedSize":927456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfRWsHCRA9TVsSAnZWagAAVHYP/jjAVwM2eVRw052ceLf1\n3eptcISED6Vw18IsOF+F2B7ERdmgQhLJX8Kn1+6xiCpNHNbTuVa5sBUdZ9Mx\nPQvuIb4szrTwr0J5bZiCoqksqIJGWdXylC6jaXt88jaR3IYE6A8jmH0ItD+6\n3r8TgHtzu3nG/vkgoYGb5A6SdcvAktptRLaV2P3cDLe6wJDzE4o2UquwTJDL\naigyYqj/Zv5/KwTjmeDdSCzNpbPl7QK5JqVG8e4sNFvpRS3zNQb4KDBHyWTM\nX9PJg+PhHQkTdgdt1VchJl55l0fhfdbI/+OkRHICKhqBWuXOT8eiiWQ5H32z\n90BUGKJHVc+qraop0HvxR9CPFLB16xLTWDNC7uGCYPxpC94ijwb7MZBr9rTJ\n/58RIBuYYFttQAVxCzY2qX2YZ4LanZ5EqLw4XcSIjPOrtP+Fo6bazaZ69jH5\nk8977qhuiGU+RODFitlIPyGUM/dXsTNTq2kyD8bKeCtclbyMeDphnGkEd17h\nDnPe17OvGyZUQVSrZGDzrQsIM4ctn1OF4Z4rxQQjUYpfsi0coQe7SqPtPBZh\nGbOUrKEx6OBTveB7xrU9RF2rYM74uJ6xgiKlEaq/67PYzzC2lfXv71m62Tmb\nXu1ubgP6z/ROtndnoGnm1vicddLAqvgEOMoFY65EJofjyX+9HW4IQ3S+Z4kw\nHyA+\r\n=ZTYd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDFaVlX3YDHKMqI522fKNrTwNwJGrPIBjQfo+zR0hnYkwIgeos8UokpOWd5tZp/Za5ZSbCogKLuPjlzhiQBAO72dug="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.14a172db.0_1598384903096_0.7718427173749909"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.e6c1038d.0":{"name":"@material/mwc-list","version":"0.19.0-canary.e6c1038d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a1c65593d.0","@material/dom":"=8.0.0-canary.a1c65593d.0","@material/list":"=8.0.0-canary.a1c65593d.0","@material/mwc-base":"0.19.0-canary.e6c1038d.0","@material/mwc-checkbox":"0.19.0-canary.e6c1038d.0","@material/mwc-radio":"0.19.0-canary.e6c1038d.0","@material/mwc-ripple":"0.19.0-canary.e6c1038d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a1c65593d.0","@material/feature-targeting":"=8.0.0-canary.a1c65593d.0","@material/mwc-icon":"0.19.0-canary.e6c1038d.0","@material/mwc-menu":"0.19.0-canary.e6c1038d.0","@material/ripple":"=8.0.0-canary.a1c65593d.0","@material/rtl":"=8.0.0-canary.a1c65593d.0","@material/theme":"=8.0.0-canary.a1c65593d.0","@material/typography":"=8.0.0-canary.a1c65593d.0"},"publishConfig":{"access":"public"},"gitHead":"6629a242b77f90688959f5a54abc55be3a2dae2a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/6629a242b77f90688959f5a54abc55be3a2dae2a/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.e6c1038d.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-x/kJVnl+7rIltIuV7ZMrc/KlBNrApXqWjqfUwc8BCTQra4xHKqTgmooLp0CSVl5TSg002krHB5iwDghrhhzivA==","shasum":"3b52ad4f46665119de7c58e0f7f0984444d6f888","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.e6c1038d.0.tgz","fileCount":80,"unpackedSize":927456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSAt/CRA9TVsSAnZWagAAFjUQAJbgQ/HirEqPpc/sGaaj\n5OLF1p4kGr4GrqzolC8KJ7CMNxaZzVobMHXFDGoBDYb2Ab2fcS+nKZygYRqK\nEiFRcfdsm/1EHCCXxhE9UhHC3gcwBX329r9J5cQbtZy+H/jtkiXoU2/Ob8Zs\nTAit/Shyw++mYQfClQmsZYSTAywdq0PJ9uT1WBUC0fcEPyrD0uTX+OgsHCo5\nLHeqcGkTx6zjiserFhzkRS+6YXw1E9SiHJ4b2TvZxohRSs+piySeYvn4CshY\nAK1wEDt1ucRgc4197bZq5zav4pWVVQHMZz9ph1MjOCYNriSdaynQHVrMpZy1\ndUvHPDcvq41uA0cBZl0XUGJWDdc/RfFsYb55gkJ6i+2IIX8IsFlkkYX9h8PM\nJdJZJ58iiHKpcJzOwlC9J3D5AL4XJerWch/ARajV5tscSg5Yr1WV2OzOwLAq\nQcCrkCeOXa2DEpAYOkMp7Tb617uQz1lp7PO2dqW917ttPkk5leOLT7R4qQxJ\nHiFQml4qwE/mIZu5/vos1yyg6toAMBx7uDTjBYvUGjOhG4g/K49q2WTYbhTu\n6UUwbrYOznVH4XEriVIwplSmJXLsVEyIiUp0o/TNkCeTTPp/CfpwoP+lesiY\n4Um9brwUiKrmwKWoMSIwVTePsF8EODCzVwdlODmKTFv4ErxaMXUeDbKwx+QL\nNbh5\r\n=JTNC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEBlHpiug5/XPH5dFj38xGBgQL04h5BNSwqHnrigTpO1AiAntTbxUVachPLlMICWS4ND4Y2aK1+3hXssQ2LVEvqk7A=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.e6c1038d.0_1598557054781_0.25114569113559626"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.34012082.0":{"name":"@material/mwc-list","version":"0.19.0-canary.34012082.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.238216fc4.0","@material/dom":"=8.0.0-canary.238216fc4.0","@material/list":"=8.0.0-canary.238216fc4.0","@material/mwc-base":"0.19.0-canary.34012082.0","@material/mwc-checkbox":"0.19.0-canary.34012082.0","@material/mwc-radio":"0.19.0-canary.34012082.0","@material/mwc-ripple":"0.19.0-canary.34012082.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.238216fc4.0","@material/feature-targeting":"=8.0.0-canary.238216fc4.0","@material/mwc-icon":"0.19.0-canary.34012082.0","@material/mwc-menu":"0.19.0-canary.34012082.0","@material/ripple":"=8.0.0-canary.238216fc4.0","@material/rtl":"=8.0.0-canary.238216fc4.0","@material/theme":"=8.0.0-canary.238216fc4.0","@material/typography":"=8.0.0-canary.238216fc4.0"},"publishConfig":{"access":"public"},"gitHead":"2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2df5ccd57b9ce1a3c2b3ddda99e7e7d8b185ef26/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.34012082.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-YF4cXFEVCqC2WrJ0Lu4gGcob7N/HcmuUpMeuiWnJVobEOGqbOa+J233r3+HvfZczB6VLl96DxtEdG4tIjO3m1A==","shasum":"621d038434ae0cfbecf8f5245744cc010bb35d69","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.34012082.0.tgz","fileCount":80,"unpackedSize":927456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSA4nCRA9TVsSAnZWagAADRsP/iPyDf0rRD8VRbLsLxFs\n+VZfbTwniztP12sCzWmWyoN3IRU7/7N8c4MuaV2pHjkcRsMsJt+ZaZXfXLhH\nG4eHkbGFR3QCbQbRnsMPqLzwtWZrtcz2k0Pa+P5ZFSkRue5xzkpDjCEDNu2+\ntgQxiCIPNJoVztrpzeYadtbshTL2idehrphhh7J2GcDZMjVbWm4XvQYBo4zH\nvX208Q0wkuYDkjkOH7hJQJNtVGm6imYabx9xBioPQep63oOY3pAjhe+2bkeb\nWIFlv1ApU443GTLzwGx0qY0JaNzCA62eCAoU9baCX2Xy9l4z09LRyFdz2djy\nQenYtKEPU2AQdxVshIEhPstVneEJdCA1M7sIXtSgZpY+ibTBndziQpSbG2Hb\nB49W9Axv9HvuCMslSWMgSjEqeUG6QVioKu30vija5I6xlDlzWfJs2ZleRUER\n/atv69AcCdXMeV/ngidmkOE12O8CK32qUgAZ22LHFeOMLXCUh1iBIyyVBQIo\nkmKb60sry34Ngmwuv4PY8QD1fmFTVbfqVTDaoI1QoWxzg8BA5cY8wOC5uYjx\n2VNoy7o6By9B8BWdy2pCVbU5DqKRxfG/nNZdRYy0ARx8zNTmGh9JmE0cWLBH\n7KenSP6WalqHiSRoNHCZ9Jf9/E5I41zqaVQ2C3zVnszsLdOJSnozpiRzZw3n\nUjIp\r\n=KYNk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICpDEi8EZI82ZCdysatydVa8QDblDcbvwTYmaTEKDYZ3AiEAumsFelqFCgyItMxQOOUpvAYQ0pFYLJwVfFum29/LZAs="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.34012082.0_1598557735263_0.7668564535633882"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.c073f7b8.0":{"name":"@material/mwc-list","version":"0.19.0-canary.c073f7b8.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.911014711.0","@material/dom":"=8.0.0-canary.911014711.0","@material/list":"=8.0.0-canary.911014711.0","@material/mwc-base":"0.19.0-canary.c073f7b8.0","@material/mwc-checkbox":"0.19.0-canary.c073f7b8.0","@material/mwc-radio":"0.19.0-canary.c073f7b8.0","@material/mwc-ripple":"0.19.0-canary.c073f7b8.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.911014711.0","@material/feature-targeting":"=8.0.0-canary.911014711.0","@material/mwc-icon":"0.19.0-canary.c073f7b8.0","@material/mwc-menu":"0.19.0-canary.c073f7b8.0","@material/ripple":"=8.0.0-canary.911014711.0","@material/rtl":"=8.0.0-canary.911014711.0","@material/theme":"=8.0.0-canary.911014711.0","@material/typography":"=8.0.0-canary.911014711.0"},"publishConfig":{"access":"public"},"gitHead":"e16d759d8a3de4908c04fd08603483dbc37b1747","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/e16d759d8a3de4908c04fd08603483dbc37b1747/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.c073f7b8.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-JCc/CFv1Ft38rc/bq9aH3cH8SAW5TpXbgFVmSIZ2s3jWcsElo8zhk7vPFXg3a0UcGfwUyGOMRhzy10h10J5yWg==","shasum":"5e87f61834a3bd371da68a6d080fefc705dc9909","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.c073f7b8.0.tgz","fileCount":80,"unpackedSize":927456,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSTsGCRA9TVsSAnZWagAA890P/20MQffxCtWMx/XJk3iY\n8B5uz1d+LBw5QJtCFNvbozpo4tPz+Do0VSJvh7M+sBQweHr4fiTo+I3RSG18\nwgYDpcly9ikY7tNFv25jSqmzE5H/PmZ8J6i7xNrIQ55FnB+h8JHe4EPe/HnW\nElsHmij5sSb1PKufKKmlXyAN51QWiJ7Yxc5gNI1I0dK2qIp3TgpZjjWrudZg\n4v0lZVod8YJPn2+A+LdJW0rFzlSeprXVAT1JySP05waFoloieB52D/woRhe3\nTao2f+jHfkvIExLlgf0LZA78RO6pPMfuWMHa9/ZwW1quEy2fKRkgo4HLeqgi\nrWhGLO35WZbp6B57peN6wMlZtTcHlO4T0MjTEHVx2JbWxG2mJy37jC03/S35\n16xXRKuGKW0iey1UU/st+cXnpHnfhNniX0+67oa4wj2tH2va/qxxW5t0XJhM\nK9CBva18RAZh0dps00hKUBXAgbAp7hsUI/xMnvG9aaOEAmxe+8PUabRFjz9D\n0oHYk31/2CjJOCsCuw0nqew10or4+EwJGrrAGtvYMVTjFBS0wz1dUVU1J1mv\nBAQYEwM+VvxOHBt3l34akcL1BIFeFkLoS1nm1AwaJAW+ozxv6PqeLoTPkIlT\nzeD8BFWlbJtQnP6dvctA8L6/+t3aQLnjRU11DBATQxIW96P6qBDE6n98JFht\nluBD\r\n=/n8m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG0aL4iCYqTjQbped+s9ncVGsQhfADKRwlF4BugEg2ugAiA9Km0wnwcsZawWJ81qVS8Lj11mLBYjIqVlw0YcPoUbvg=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.c073f7b8.0_1598634758184_0.32608488749833087"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.b7ae68ff.0":{"name":"@material/mwc-list","version":"0.19.0-canary.b7ae68ff.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.911014711.0","@material/dom":"=8.0.0-canary.911014711.0","@material/list":"=8.0.0-canary.911014711.0","@material/mwc-base":"0.19.0-canary.b7ae68ff.0","@material/mwc-checkbox":"0.19.0-canary.b7ae68ff.0","@material/mwc-radio":"0.19.0-canary.b7ae68ff.0","@material/mwc-ripple":"0.19.0-canary.b7ae68ff.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.911014711.0","@material/feature-targeting":"=8.0.0-canary.911014711.0","@material/mwc-icon":"0.19.0-canary.b7ae68ff.0","@material/mwc-menu":"0.19.0-canary.b7ae68ff.0","@material/ripple":"=8.0.0-canary.911014711.0","@material/rtl":"=8.0.0-canary.911014711.0","@material/theme":"=8.0.0-canary.911014711.0","@material/typography":"=8.0.0-canary.911014711.0"},"publishConfig":{"access":"public"},"gitHead":"2065ba1bc7a6ad7aa6a2c0404136a31018fba984","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/2065ba1bc7a6ad7aa6a2c0404136a31018fba984/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.b7ae68ff.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-qBPF/MLPLMzasylwUl2zdg9oH/2WZ1wPxtS63slOSeH1dfgw+kkrjF1Sa5w2UL3gbWkhiVBLLwhwD33z8AljvQ==","shasum":"f100752e89ac31575221c494bc565d3511c01290","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.b7ae68ff.0.tgz","fileCount":45,"unpackedSize":239713,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfSa8HCRA9TVsSAnZWagAA2S4P/1MFiqylE4S7x3Oq00Co\nKSBQnBmaB0QOavRbD0M0+zyRpR43tAW+7AxPr9nZw+mIdFhZTmUVgZMrNdr6\nLN1kE3pyVxvD9g6wW7BlmsNnQQhlQnjw6ZK2z62R0PuPVK2z5sWOK13/gZre\n26fIk3VjyjhpNbOAquGsMcbmlhm3Ftmelqm5bBuZbpxYJt3d+E7Q3RuHHgIK\n4yc3uN6EYqOHW4GjBFtpE/021uYT5QQGSBVEktks/X6bD8x2pThW0ZsndPD3\ns0YnoljeG4cCJKKn+g5iYWf1/PpDa0X3tQLgJ8tRrfqg4k8IhRahRxE8kVPm\nJNMb9+dF/jGxwegeVqTPePBCt8vcA3UvBzC+/I1hu/0ucJJ696sK4/XLK3OW\nD2zcZY0+oowCAgvbvA6coT/CDYi1PX5xW0rygH7JD4lrzkDRmAagbEECINfS\nJmPspC4lwOp4mFB1sTzK2csSmh9EZthNehcHF/mrw6vgPA6N8uDV1hGxN2Nl\nz8/lvLVLX1JhUW+P7WjKfBEH9iybjjt1yiVO4KyGhWE9rZzlnp73i8nLlWSi\nxxjBm3rx1HsdpMOSv4rbT/aW+XB4Pyz+meetk7ic+2nwkLYXYga889O5fTfh\namVx3crDKNjaDYYxNYWgKhUf8VUaU57EBMANDos6pmrSmqP05ZAzQcz+uz+B\nczii\r\n=Vkhh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGniHjC1rsHNzZZXBlcWjdWoc4uBrFDZPoCrayUhxos5AiEAqwrESrTFsjr1qZhaIOKpudrYEU+ACJJvekqnvfe4Dx4="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.b7ae68ff.0_1598664454753_0.18499443463406595"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.697e3879.0":{"name":"@material/mwc-list","version":"0.19.0-canary.697e3879.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.911014711.0","@material/dom":"=8.0.0-canary.911014711.0","@material/list":"=8.0.0-canary.911014711.0","@material/mwc-base":"0.19.0-canary.697e3879.0","@material/mwc-checkbox":"0.19.0-canary.697e3879.0","@material/mwc-radio":"0.19.0-canary.697e3879.0","@material/mwc-ripple":"0.19.0-canary.697e3879.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.911014711.0","@material/feature-targeting":"=8.0.0-canary.911014711.0","@material/mwc-icon":"0.19.0-canary.697e3879.0","@material/mwc-menu":"0.19.0-canary.697e3879.0","@material/ripple":"=8.0.0-canary.911014711.0","@material/rtl":"=8.0.0-canary.911014711.0","@material/theme":"=8.0.0-canary.911014711.0","@material/typography":"=8.0.0-canary.911014711.0"},"publishConfig":{"access":"public"},"gitHead":"beb4a106ec95684b6ccc8c4af64c083d8462c917","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/beb4a106ec95684b6ccc8c4af64c083d8462c917/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.697e3879.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-woa0E/34O4fUjOJr6mb1MQH1myCjikYhMIHSkZzCDR7D3fMI1p97YDT7AH4f/eljobE5FfibJsPJlZPNr6SbtA==","shasum":"dcd920c5a22d57c40fcff3cf2201aaa5d99b5738","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.697e3879.0.tgz","fileCount":45,"unpackedSize":239713,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTuO8CRA9TVsSAnZWagAAOwIP/1Go/W+pfrC4DQgXcNYY\nF85tOSfSlD+6vvPhoJDCfLnKbDeJcEbhFPRVXfSyTyNWSLEb2cz8bSeHd+Ja\n3wgOZDHqnvNClcoBpOVqH5XdlVYYpBG4NG6Kk++aK4/wevQi+TF1Mppqfeqn\nJ+N3FPvgaOCCMQ+3L6tEyl2t1Y44VBemBetYaMM7Q/EULK/YqoNPSjxzgV46\npeEWJvtQ1GdMZnr6ASeI4Jaya+DaKenRZ3OnhiteY7jeUhIsgbF5LKA65TH2\nZvKM1e/cLXJTFlfrXtA/LTXRlgHgZVf3ULxlx5UPIAsDU//qLUQ2Hy6WzsBg\nPrFpOkJXD+p8ueDjOgM940QD2iT7zOGEnpyHSqXSAmO71eoRSbINlaYdQKkR\n5rTEo1lUpvlTDtgt5dE7m41IoFl9W1rX+fijZOieHYTLJkMld1wrW73eRsx1\nqOh4y9saxGRO/ALdDxm7TGyF6dnJ9rEuzn6D6/avACpyLbxnlqUWDPVHy24M\nHKNN8vCpUP2QEn3VD0Wh8O+l8gy57f32L0OgvRzJQpjqZE5zXGWO5gnNJLvP\nBkP8osBEE+OjdIL4eTVb1ElqRxy/aW+Jb5uvnk/pGbmWnUIIGyoRRb8i6zfk\nJDbRRpW6f8F2fRTcLmfOVg6JYoXmsSgfUBRCAfsKIEpbUi4o6UtHEJyFlfx2\nusxt\r\n=AM+u\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeN8N3oPvxt+3zObCDzuplFiq6b9H3MQdU2ORPZyL1uwIgMG5EgsCrDiqpQRZdRNV/xJTzObmjPNHaQvSg7vb3D/8="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.697e3879.0_1599005627556_0.5542384623594117"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.eafb7991.0":{"name":"@material/mwc-list","version":"0.19.0-canary.eafb7991.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.911014711.0","@material/dom":"=8.0.0-canary.911014711.0","@material/list":"=8.0.0-canary.911014711.0","@material/mwc-base":"0.19.0-canary.eafb7991.0","@material/mwc-checkbox":"0.19.0-canary.eafb7991.0","@material/mwc-radio":"0.19.0-canary.eafb7991.0","@material/mwc-ripple":"0.19.0-canary.eafb7991.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.911014711.0","@material/feature-targeting":"=8.0.0-canary.911014711.0","@material/mwc-icon":"0.19.0-canary.eafb7991.0","@material/mwc-menu":"0.19.0-canary.eafb7991.0","@material/ripple":"=8.0.0-canary.911014711.0","@material/rtl":"=8.0.0-canary.911014711.0","@material/theme":"=8.0.0-canary.911014711.0","@material/typography":"=8.0.0-canary.911014711.0"},"publishConfig":{"access":"public"},"gitHead":"98841f8d9a2c624210fc6f0bdb87082222279e38","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-theme-text-primary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, 0.87)` | Color of the primary text.\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-theme-primary`                      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/color_6200ee.png) `#6200ee` | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/color_000.png) `#000`       | Disabled text color\n| `--mdc-theme-text-icon-on-background`      | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/color_0,0,0,87.png) `rgba(0, 0, 0, .87)` | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/color_0,0,0,54.png) `rgba(0, 0, 0, .54)` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | ![](https://raw.githubusercontent.com/material-components/material-components-web-components/98841f8d9a2c624210fc6f0bdb87082222279e38/packages/list/images/color_0,0,0,38.png) `rgba(0, 0, 0, .38)` | Color of the meta (if is text or text icon).\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.eafb7991.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-cXsbgrBxRldqURz5YIe/hpE6F1c/8c3MQFMZg7rkXYDURMRD+V8Q6jIMn9GMKl/L3R0fSnTkFO8SpNiqJSAPrw==","shasum":"baea0ae22f1f2f37b17b40bf7ddb0ce38b9917ae","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.eafb7991.0.tgz","fileCount":45,"unpackedSize":239713,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfTwEJCRA9TVsSAnZWagAA1j0QAJTS3rnCRmUxQ/hOIj0F\nBDwaRAFAK4GtBDmRhKIqqnrO0e99I1mfXYVIfEghEGYnlvM7AFx/c3LKDDa1\nnsY2DQt0ObyWZkrRvI0gXexcxPrkPa5gvL5Ede3pFwTykkxyO2Z8Jd/j48Uf\nVcqyKHdJ0FosMCuzx4ZuUoCm9yqfNn9ZZMUBBTdigFlduXGCqp7fjdGyI5/B\nxAmeDAUaJEB+egEcFlM7TBF7B0oCzsXyn4u4njHQTwEue6TfUnZuHi8tkKMI\nyJaYvcgCNUrN+R7Mbzs5YmTnrE76ze8CRP6G4HrY1dilzov7ZJk4P98RReH4\nX9Oxbn1e/2+8UF7x8aEtJOwdViuMeF/nfeRQ8g9yxFCYuxJ7Uf9N9v28yZwD\nF9DrcR3D//cvjRe9vjhevOGibNr2UxtTBekOJxr9Ph8o6kITvhjFV/GOWaQA\nl2rHhMVbQXAe1PtfxWpGo59LZwqhF6HzGB+GLKQf6Dnw2iD467v/fuoWKsU8\ndVBNw05GWNdJ35sMzBMP/RZZpN8K9exZLgqX5v7V2VDbyuGeqrDjmLdd/ieP\n3cbuAPkKW7Rv8oePwAK1iiJ12mvSIwQmRtNIBTrakizwK580ZjNxs3UqswV/\niXjTnBqelkjPplvecnI2loEgl2z7l89HI1oKUc6r7a7HCAG1gSDha2UC2G/W\nf0eo\r\n=BLyh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD3AlR5Ck5+BSP49Tb7kSD+L/R2uPqxtJuObu3aj4QlAgIgQbMIst8mpKm8YAKHt1OWs/9fNHLa2ABLODES2MNDLdA="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.eafb7991.0_1599013128740_0.6993241068582863"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.606642ec.0":{"name":"@material/mwc-list","version":"0.19.0-canary.606642ec.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.911014711.0","@material/dom":"=8.0.0-canary.911014711.0","@material/list":"=8.0.0-canary.911014711.0","@material/mwc-base":"0.19.0-canary.606642ec.0","@material/mwc-checkbox":"0.19.0-canary.606642ec.0","@material/mwc-radio":"0.19.0-canary.606642ec.0","@material/mwc-ripple":"0.19.0-canary.606642ec.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.911014711.0","@material/feature-targeting":"=8.0.0-canary.911014711.0","@material/mwc-icon":"0.19.0-canary.606642ec.0","@material/mwc-menu":"0.19.0-canary.606642ec.0","@material/ripple":"=8.0.0-canary.911014711.0","@material/rtl":"=8.0.0-canary.911014711.0","@material/theme":"=8.0.0-canary.911014711.0","@material/typography":"=8.0.0-canary.911014711.0"},"publishConfig":{"access":"public"},"gitHead":"e02eff9a35c3b9c054d88cd2c45d44ac7d81db14","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e02eff9a35c3b9c054d88cd2c45d44ac7d81db14/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.606642ec.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-fdLbuiK5alduZHA8N+cRHB1N/3Mum4PfyQIaSmOPMyk+V6s1OC2wZvpgBv0C9smfbZaSXAFaaADw8FN4gtbAwg==","shasum":"8d38a6043b7b5b07cd142395eeca3bb183a87865","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.606642ec.0.tgz","fileCount":45,"unpackedSize":238609,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUBBNCRA9TVsSAnZWagAAzXoQAIxHXG/A/0MBHt3CdvLF\nWppEH6702kL5GdE9Ne8Jnxy3mt8A0cR9M/OKnarO2brM/JLmVHdiMXwy+Sdz\n6TJrvLdO5hIkEUgSR/n7ga5KRjqhjOYK9w3WxFs/D1lrH63KngeedSykwVag\nuDE5/sO613oIwJFwj7iXxrul8TfReCL+SX/0pERCds0rzIjxC1kts22hP8J9\nqvcz10xZPdyzTydRNl22GJIIE/mxG+Ce1mq4pgdK3ngnp+OPaVjprvyFqMDs\nJWw1XYGEfjXWj7F9QX9olQ4195x0Df40Yp0IQB0NoAdWTOzQW26ue2x/S+dG\n2u78+x8aWYYQt5MYi7Pa2XjYR/QZLpJLPrTEB0po/XMM55/jqHX7xO4EvdJq\nl2X/zjJ7FeBkMR6Q1VRu9ijbvmf1dx8c0Y779825PM2I0UbGu1qFZ7aurgnh\nsWmV1Jh8U4XEufhaCM5sIVxWWI4PuO1T1bgZwM500Jd7I7A/CjkFCyJKR9a2\na5IFveulpE8ZzgCStHCdnZs9NGzr6i7ugkd0hrMqg854fLifi5T1uWEJq2Ej\n79Oqxxsy8Z28Qk1uuZTHDIOOgLpz5VxrxSmczgedwJXwRKalv/eKW7Ckt6px\n05VYU3t0XEPli6onHPf0kMf9qRxKEsjRhswK/hUfYor0n9Rnlu5BZahXtSZ/\nn9+q\r\n=wTtW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCws7aiyOnBOxYFJmmCmJN1PjlewHzgvlqD4Sk5pWtBTAIgLP6/RvYciJf+l2fjDcDn4pb8VIY4yaKesS/d1uMpDAs="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.606642ec.0_1599082573013_0.4847564256231853"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.ddf05c42.0":{"name":"@material/mwc-list","version":"0.19.0-canary.ddf05c42.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.911014711.0","@material/dom":"=8.0.0-canary.911014711.0","@material/list":"=8.0.0-canary.911014711.0","@material/mwc-base":"0.19.0-canary.ddf05c42.0","@material/mwc-checkbox":"0.19.0-canary.ddf05c42.0","@material/mwc-radio":"0.19.0-canary.ddf05c42.0","@material/mwc-ripple":"0.19.0-canary.ddf05c42.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.911014711.0","@material/feature-targeting":"=8.0.0-canary.911014711.0","@material/mwc-icon":"0.19.0-canary.ddf05c42.0","@material/mwc-menu":"0.19.0-canary.ddf05c42.0","@material/ripple":"=8.0.0-canary.911014711.0","@material/rtl":"=8.0.0-canary.911014711.0","@material/theme":"=8.0.0-canary.911014711.0","@material/typography":"=8.0.0-canary.911014711.0"},"publishConfig":{"access":"public"},"gitHead":"1733e660bd96fac32b417696613437f27b2841e8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1733e660bd96fac32b417696613437f27b2841e8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.ddf05c42.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-rJS9rGogtdv5Sdu0VsxvFPUgZCbh6CUTz0YW/jPrX8BeiHHghhGZRBOJpXBmNmTjJhu1JfOs+9kJbS3Zf5AgSA==","shasum":"56b721a2e04e90ad73199aff0db814aa981939a8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.ddf05c42.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUPViCRA9TVsSAnZWagAAOG8QAIxdwRvNxMaPX0kRbMyk\n2Xyyhi6ZKOXEzmQVyiWT0cg17DAc8jR9EYgJlcxUMUthlS2aa7/YTC++fRjY\nf+JYNnLSkq+uMiXzSqDlrtvsiD2AuritT4qsgvfpxdpCzO6E79RJs7NXaD3B\n6wDN+PH+p0eRcTjJZRQxhxVUS9apytDPUxgRHRPGoMN9n3hY7hajSokf2VC4\nBApnEwYOpyBc0kEAI+WCSVCMOYZoanOjN+ObqlpvYxLeEE2snAlZbx4tGGRr\nLnvmy3JqGJ1IqF5+p+ew6A82o/AUkrlQH6IoI8WkZ8PY/Y+v8cXFqXhT8kU4\nhfbR42WYTKsiEjRIH20e5R66xzBFgJDkyML+nAkQquYYYIKlMgUQVrq19AWP\nFtsQjpy9ZoFv+MXHEvC/bOVft8dXmByCxOmkO+IrQ48rIzMbkDcqtBrN1Y1v\n+GG/WK0VIESFxFtZvtQseyTSML9K0bKtFGCmiIV8khhPR/IywwHVBcSeieJd\nJ2fLf099NwMmBWJJ3UrxLpY6xwDWmi2yYHJAVaklkNxFbn4+B4UkGr+A8CB6\niy6ZnUyShp6mIZyb8fEs382aKk9mxbDK//78oM/9EK9cIDSxTpVSTv/ZXz4N\n5FnnZ9C6QsGvrAuobPqqLf5QhiOwDHxgHOCgUduvjnqVcTFfIftUeMPLFIBu\nW0bh\r\n=mMFw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYu2NuqEYMJ5CiWK4CrFA95/Tless7Aji1NO+m1MlIhgIhAKtZ9egWp5tf0EnCoLTtsE2PJ2GeQ5pc0t1zwuktTmDJ"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.ddf05c42.0_1599141217929_0.22872015943010737"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.b889e6dc.0":{"name":"@material/mwc-list","version":"0.19.0-canary.b889e6dc.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.911014711.0","@material/dom":"=8.0.0-canary.911014711.0","@material/list":"=8.0.0-canary.911014711.0","@material/mwc-base":"0.19.0-canary.b889e6dc.0","@material/mwc-checkbox":"0.19.0-canary.b889e6dc.0","@material/mwc-radio":"0.19.0-canary.b889e6dc.0","@material/mwc-ripple":"0.19.0-canary.b889e6dc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.911014711.0","@material/feature-targeting":"=8.0.0-canary.911014711.0","@material/mwc-icon":"0.19.0-canary.b889e6dc.0","@material/mwc-menu":"0.19.0-canary.b889e6dc.0","@material/ripple":"=8.0.0-canary.911014711.0","@material/rtl":"=8.0.0-canary.911014711.0","@material/theme":"=8.0.0-canary.911014711.0","@material/typography":"=8.0.0-canary.911014711.0"},"publishConfig":{"access":"public"},"gitHead":"9c47011345ccf89ec21a35053b80a0901ab1d6f3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c47011345ccf89ec21a35053b80a0901ab1d6f3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.b889e6dc.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-FAOqIKOOiEB6zZYPm1FvDQ2xcUpYUc1+R7UHslYIUTDJISx3nxSauBrbYqDskOJjfxWH5jxxwn5cDp0T1ZsHhw==","shasum":"31016e01d2b60f78b7d80a07c2a5d95882286131","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.b889e6dc.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUPmnCRA9TVsSAnZWagAAJf8P/RZRyc08pwVv4IkMktSo\nxXBn+wUrwsgCcu4i3VenLpcV4NuyRr+GECxV7l1CB6iyyd9GJKgy0uW171bk\nJe+qgsDhnYl0L2bfVNxqZ3smoxfklHuzrGzRmhu0e67+nx7qY+guG1vw1HJu\nja2NBMYIsBDOeMdMYHT+kcxp9PYYPOog5QB+MTqGsloAwy9fieYOs47wN9oT\nxco6o2rRvfDKT5NRho00XyxlsX63JI4OabH1Xye0CVU/xHlbPe0qxGaE3bCj\n98E9+TJFi8Tl7MuniS+voQ2D4MpE57LQwuaaTLBpKlGMG1pBUVJVkXpuiT4H\n/LcUq37U5V6QT/esgzEmxYu32Yol3d7wCl5k5CliPQLqgh9awCArWUVOQ1SO\n8R/Gm4jcigYQ4A/AamwCbg3t94irSW28MNAfR1ZDNgof22rXxEEB87gtbyLr\nzBzPE7pMtPYPzwtFySPU+cuYxICWOM054En5QewLJN/5V0qsvgrU/y3yGn/w\n6icQKYGTSFzVNQwy8pjiBaNv6f/gMWEbUMkqLRhdd8G58HWDzATR2O9orHaq\nkXL3AayEfLi9iqIvdlrDzinhzSaXCNkx2uoYCTyi/COc9ahv53nozRCNMnAw\nGI/qnDB7YunLWxPTa41x2Kc9qUYhoVlNyf5vt6DM/xfUDvuPHcdCRTNPLOKW\n53SL\r\n=lMHE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC0nlWOm6OWeFS1tDWujGBelhPFIsATVPoIfIrtZTdGWAiBlzch2BDPb/v+hRfNLuLJW0GHa9ZtaB9dKS2SyYvnpcQ=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.b889e6dc.0_1599142311212_0.3308006091833193"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.aabeceb0.0":{"name":"@material/mwc-list","version":"0.19.0-canary.aabeceb0.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.911014711.0","@material/dom":"=8.0.0-canary.911014711.0","@material/list":"=8.0.0-canary.911014711.0","@material/mwc-base":"0.19.0-canary.aabeceb0.0","@material/mwc-checkbox":"0.19.0-canary.aabeceb0.0","@material/mwc-radio":"0.19.0-canary.aabeceb0.0","@material/mwc-ripple":"0.19.0-canary.aabeceb0.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.911014711.0","@material/feature-targeting":"=8.0.0-canary.911014711.0","@material/mwc-icon":"0.19.0-canary.aabeceb0.0","@material/mwc-menu":"0.19.0-canary.aabeceb0.0","@material/ripple":"=8.0.0-canary.911014711.0","@material/rtl":"=8.0.0-canary.911014711.0","@material/theme":"=8.0.0-canary.911014711.0","@material/typography":"=8.0.0-canary.911014711.0"},"publishConfig":{"access":"public"},"gitHead":"f699717c41dd2fd6f77fc62da010cecb621e6991","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f699717c41dd2fd6f77fc62da010cecb621e6991/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.aabeceb0.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-9eAYlevEzo86XUT0sYtxpd4UWaJ4iw8fbnlBFYN31loDyUHQ9ta60fERYbgFWS51xKuWC/0OvVlIWO0P7SFtzg==","shasum":"fd0f251e904215da610d4360b164313d72fcd2d9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.aabeceb0.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUUrKCRA9TVsSAnZWagAATWMQAJ4Y5girsAZCTT3vkj78\nLHBxFKAPvvEYajeu4CwlXMnMD9NwYDQwbld5j2WqowDi+tsDQOCPQIcgE28Z\n5Ry7EdD9JTG86qYCuGX7XPIuO1xi1IIIxPbP7U1Jv9br7Sj9UocrYAWS7TAB\nVQQH5d/weVbf9tSN5Y/HpahTLuF3sbKDXZRrwsYwLAO089AwFC3emFiquerL\neSfVixZ3xynri/0V7g8th02Gc7Y6sGTpUsiAyZPXOsSij/ymP5hEnDJ7JdlH\n8zvw01p/VXzdBEsM+1ODzS3TzvokoHr72whck9fJZQ46wyJ+UUA5h8WjdGdn\nFMbXcKoubnAAgotmthdGrZM2JB4M+sU+lyeb4euslDOqT0Ie2PbGtbPA+7m0\nbnwcPKx5noxowlUntS3nBs/+E8LPzCiy6IBpYNQwQP6pNNvLJAf8NoC9b8mH\n6yMlLx8p4VS8Y4+TnB9xWMdrY9khYju/kqeeqokySBadeJTsJ3Tz3FwfQv6h\ntudM0XrHaqOMk3tTFHT4WC9RvFeER19vfFLMls5HzPoOvmipvMj0902Ii0Ov\nmz8+rskJQ+OWhaPixfz7LqRbpmbVP8WaalJU7fztUsSIihFI/IKbzYlGRqKm\nFk2joCUJoVAEI7Xsa+u/vlMMqUszEY8QVcv4VYKO5tNlpGdeMozpkHGzeRCw\nyTXa\r\n=OhHc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7J+ExBQbI2wGMpBuLVRI2sZkipTYtaRzZk7KahtowSAiB3b1uoVNNHef6rWM7j0CC+719UClOJGae6JC12FsaMJw=="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.aabeceb0.0_1599163081545_0.0862650332487962"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.d8cca3a6.0":{"name":"@material/mwc-list","version":"0.19.0-canary.d8cca3a6.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.911014711.0","@material/dom":"=8.0.0-canary.911014711.0","@material/list":"=8.0.0-canary.911014711.0","@material/mwc-base":"0.19.0-canary.d8cca3a6.0","@material/mwc-checkbox":"0.19.0-canary.d8cca3a6.0","@material/mwc-radio":"0.19.0-canary.d8cca3a6.0","@material/mwc-ripple":"0.19.0-canary.d8cca3a6.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.911014711.0","@material/feature-targeting":"=8.0.0-canary.911014711.0","@material/mwc-icon":"0.19.0-canary.d8cca3a6.0","@material/mwc-menu":"0.19.0-canary.d8cca3a6.0","@material/ripple":"=8.0.0-canary.911014711.0","@material/rtl":"=8.0.0-canary.911014711.0","@material/theme":"=8.0.0-canary.911014711.0","@material/typography":"=8.0.0-canary.911014711.0"},"publishConfig":{"access":"public"},"gitHead":"db99eec046a418490ab66f7fa667607aefc5b26c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/db99eec046a418490ab66f7fa667607aefc5b26c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.d8cca3a6.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-Gi+xMCY9EpfqJ/LJo6O6xTQWPB0VBMOSRvjpgCEck79UrOmYSaT6Z/uh454CZ04DB583T8zBmooD1saMwfO+1g==","shasum":"c7f6861e4a9a05be3fba2488820bb5ba11121ad4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.d8cca3a6.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUWDVCRA9TVsSAnZWagAAAHcQAI8V1HNUysbJCKpjhn9y\nEbdZtCQZGQFisaAS0wdjYDV9YXaEnSUpI4BoJ5ndyICh1ux5yzWC0YW4iCVk\n0RMm3YUkcPI2ar+6U2lKkJw5pj1Sudok+8/ehEmiMxo0cLeYVsZ//t8xMjuG\n0TME8DoWTowBrXmDR8vJBm9TCi2Wm4/ubAtyZzCVplyYc/7HLbSi7CPM8h53\ngnuBvnPgNNtL+BWfAGOSPB82mzKYbaHpwWVlKM4cALQ7llpcyGmkEgP/QwFa\n/VDLzNXRWiCGGHZSib6VRwvhm1j/VVNmt5LdnRxRgqYGDFLyTGUif2aq/HpA\nssxvIQ6Jen9M0Y3Ci3mZh/QKnXS9xSttODf/vNqsv+fbYS4LqslRRAdXE7iM\nRIbIhz5o+PywwAJt1eGG+b6poHZiqphuHnFHHxqvhXojHyreK3IIsFeLKmgS\nVDbu1XLqbBfatLDvRlVqG1n/CaQ5O5E2Jy5ARJtaM/2rAsP962sC0Bw0Hix4\n5ruSePnj7YjYjgE/Z8/twLzm/IrOy16UnWteaksIeHHvQE5Me7tLWMrU1r/2\nFIGaY8QyLU5tagWsPgXHcgDHKxymdxsVmUa0S8ur+6L4hOpwJVkSdFWyQNjA\n1IxZVj/jOYl3JGFAMFszs+YSnyl2NWhXO+hJ9cHViPSLFGV0dBmnYUXs0qmr\n+pbV\r\n=Oa/C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCX9kazHpUC68LYTvM7oprOd1a4BJu6RDXafp4X1ZkuYgIhAItyX5kU7KwxU69fbk1RAMowrB6EM0blYIMAfbnsnbFn"}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.d8cca3a6.0_1599168724666_0.11656966941419644"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.26d34b2e.0":{"name":"@material/mwc-list","version":"0.19.0-canary.26d34b2e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.26d34b2e.0","@material/mwc-checkbox":"0.19.0-canary.26d34b2e.0","@material/mwc-radio":"0.19.0-canary.26d34b2e.0","@material/mwc-ripple":"0.19.0-canary.26d34b2e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.26d34b2e.0","@material/mwc-menu":"0.19.0-canary.26d34b2e.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"52bb6b8fb277d5ec6b66932a0683e4f2fdeac872","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52bb6b8fb277d5ec6b66932a0683e4f2fdeac872/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.26d34b2e.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-Q+rxgNVcFb5tqTX6CcmH4OkDxtAl9jGup4Qj94FfY6fewDdAyj8RSCzKDfDxp2J/MAF2zBp+dRyBGEQ3kyLj6g==","shasum":"facc779dc0d84c22abf74caeb827a05a113c36c6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.26d34b2e.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfUWbFCRA9TVsSAnZWagAARA0P/i7mWXngPDz+BAz3DGrS\nRz54FmO1Xqsk3XIZ2Rlxw62Q1VnwKDS6HtuQPIXV5Mm7FMA66jhhVgPpl68r\n/1ovgfw1Q2RS+FuN8SoGlnK11zORWj1eMnwfcLwrdubAqacuapSHhFYkR920\nOcSArJT/z4AOJO7UEB7W9frRU3ZhRUwYm/9+/awpcW5xJPW4w+2oGaWV6pz1\nZvjPEpPwe0gZyqQdBNNYKoJPbdXnnHb+Be7T4z8ioeoVFIBEdxC9rw4Ia6r7\nycNdd6v+scNPnJvSge3yay84gFJ1ZdycV56U79bQ1sZHvy58fZMz3/s8ot25\n7TueNUnDAQ3izImVvSGc9dPfItdQI6FC/yZ7ZcakOm69aX7rYO6Pko8rnlGB\nHdTD5OmGQeGPYL/u2k/kEeeDv/rwa6lj15vjo6RydG0w3klorYnQCCS+aiy1\nqo9o0yGLJPk73zpYvt0mfG8mHbBrYCFoMOvHcHzVCE/NMfRbW6ixPymvCXOw\nKjAUEhVbUzAv6Cqv1s9Kumtj27tUUg1YiNQjwAW4PsNGUiBM6WtPS0RoyEeM\nN9tf8C1nCi+OSAwQKio44nVzAXtSux3GjNoysOALP4FRcEXLzw4toFj4tDAx\n/eSEqS14yn/XqlU8iRiaCXXL2WNHinOa3GuSg9seicke7ql/axcTF3ndProL\ntyPs\r\n=WYE3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAM/UusOSXxekhaSdyL3m1I9hJUTCnpuWr2uBXYt+9GBAiEA5klNXoWvEclZHDPF+n9tzsOJPoKSxdlpD4iiDIvktoY="}]},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"acdvorak@gmail.com","name":"acdvorak"},{"email":"allanchen@google.com","name":"allanchen"},{"email":"aomarks@google.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"bonniez@google.com","name":"bonniez"},{"email":"obrien.test@gmail.com","name":"bwobrien"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"kenneth.franqueiro@gmail.com","name":"kfranqueiro"},{"email":"lynnjepsen@google.com","name":"lynnjepsen"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"mattgoo@gmail.com","name":"moog16"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"williamernest@google.com","name":"williamernest"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.26d34b2e.0_1599170244595_0.38428122895230676"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.a1c44494.0":{"name":"@material/mwc-list","version":"0.19.0-canary.a1c44494.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.a1c44494.0","@material/mwc-checkbox":"0.19.0-canary.a1c44494.0","@material/mwc-radio":"0.19.0-canary.a1c44494.0","@material/mwc-ripple":"0.19.0-canary.a1c44494.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.a1c44494.0","@material/mwc-menu":"0.19.0-canary.a1c44494.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"ee68077e51a883c9a0728019c33ed96d4563758b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ee68077e51a883c9a0728019c33ed96d4563758b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.a1c44494.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-uKVOENz7CdJyThBaS0q1EzObTWZz6kJYr7wxmxbkyz95lF76j66O9+mxsfbh45c4z5SP0k14FqOh8cwbBqi1Lw==","shasum":"bba6054924f035622f25c6e1550a903245f54725","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.a1c44494.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWVJGCRA9TVsSAnZWagAA9FcQAIrp0tUBB3VfGo3Crnxm\nNDXFDmdUTKWwewmXhh7QIRu6qDqCmBrn/upeLX5oHQZn1K2Ma3sIjw2jM1GZ\n8Zre45KD5zfQnmadiFt4a4Nxx5GuueqNeDjABXgl9k/6QxteMWT5chXKBncg\nQK/1G3obSyBIQxPTHJmLvBNmvvx8epYcGGBEoDAVxScdd0r/bhL1AP9Fb50V\n9NPzsrZsooDhcOKt/+wCuDGDS6ug5PgUXRPNXvWbrfJlo/FiBJmkF7DWcoNw\nAedRJZ2iKew60t/EeHeXLXlw/dFrF+J5Z/hQIXV2xCaxr6dlAWJADKRDs/Bz\niJongCpTqC6fRSFU1pGsK+OLYJVvKuub2d83rgJf6jDL5iocxOJm8EiyQ0AO\nflMl5eMANNKbFVyR11rS0RaPau+ApjDcEu7NIddNP8VDh5Bx1Cm4wBT9ClE5\nD5KyHse+aMiRO1oNrdl1opciR+WfVMjyMxDyQmY03/eFmktJ+JgBhHuZWz4Q\nlhqQODgKpUTCH5767frPo2gUrx4Ar9DDKaRqtIadnQLnssJOPfoFSVSUyCQb\nlRVtclKlLeKOKAmE9id14NgWGkHR6JDdoE3JyATn3jpbnLM2ao1GxpcLvgOD\n9yEYXtWC+LUz7e2xiWUMQL6VpXdM41/MEy+zDWcLgKeu63a5cfKljxAW38ux\n32P4\r\n=WWu/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCSI2NcM9G6+rlNVUO2VIH6xqlxgHseS33Ppl/OhjHKqQIgerDVF3ZSsn9/U95AE0zakv0oQI1XdlPmZZQfLXz0OZo="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.a1c44494.0_1599689286164_0.4893125959364777"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.be1cd1e9.0":{"name":"@material/mwc-list","version":"0.19.0-canary.be1cd1e9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.be1cd1e9.0","@material/mwc-checkbox":"0.19.0-canary.be1cd1e9.0","@material/mwc-radio":"0.19.0-canary.be1cd1e9.0","@material/mwc-ripple":"0.19.0-canary.be1cd1e9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.be1cd1e9.0","@material/mwc-menu":"0.19.0-canary.be1cd1e9.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"e4ece959ee320d67e92b5c9add79f6f7eb4b2be4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e4ece959ee320d67e92b5c9add79f6f7eb4b2be4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.be1cd1e9.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-xDNmyL0UJ/zpP2VrVT7D8l5UQeivn6mOOGiv0km4J6TCCBk6u+thUKBbMIvUbIU9bb0Fg4TwUZYAQU2ebP/+oQ==","shasum":"4a73bb07b375b24a21039e53d84a1a060b400842","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.be1cd1e9.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWldBCRA9TVsSAnZWagAAzt4P/j1zjQtc5t0x+MgKoKVx\n77z6AOiaSQ67/M/7WHtgKzoaWz/7wX1iXv+RX74pDsfHrN/Xh8H+rKz2M5jQ\n8C8q8BH0bzoeIGuuxevccFEj4s3J5MbmVu+yUEFHLNknFifS4dAnfG1q5HpX\nJ/prkqYrsPG5lJjqBZRo82CDY/jEo0GrRoEhMGbco1nluIegoIEvfDUG9/U4\n1tT0VQFVpz6ORhvhgu55cne/O+UZLCNUxV9Aw4tIg1vaPlV8Oyc6K+qdDfiI\n1xTNrTKVdscmAe+2XgLXR8QzR+HAcVc4TG67tDcEkyeh6PqU5oVvFEFvddHB\nqrW7PJT61ToI8QyAcrThQEyoItMNRtbyt80TTR2doyzhusX9F5wMQVfFPrWg\nSIYld3X4CNMjel+6Ept1rflxdwBVgfzflJV4eCahkPRcxnIyiIWjxOdj9ybK\nJGcUK2xJ7DnMdsZMr1kZI481TGWvCR5GWvc1g5E8Hvebd5Ndy5+T8et5qsHE\nLfI7AMeyrRQKzEQH3Uth7/Ya4hd6Dt13B8HEpzq8nSn0eEPHNGIZdGeDE7QF\ncyef6OoNNj7cdOOPIiTl0x0jFMtRrOeVQWlWfxakRYOIlKc1IuzboQ2JBsU6\ne80i1I22iIwGY2CrjPsUxcuKx721/BS1unkiDnTKTTK5CZnHMicDKKHoYNi8\nt8yU\r\n=jNPk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGMAoeYmxgtKo1jHKsHXkiEMhnnxCv+SzNgY7vngJO3DAiEA2E+RAwyPUI7bsPtEKZJI/Dz6rCn7kIEtqxLFVobW8G0="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.be1cd1e9.0_1599756097213_0.06684339340579815"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.f094c0ce.0":{"name":"@material/mwc-list","version":"0.19.0-canary.f094c0ce.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.f094c0ce.0","@material/mwc-checkbox":"0.19.0-canary.f094c0ce.0","@material/mwc-radio":"0.19.0-canary.f094c0ce.0","@material/mwc-ripple":"0.19.0-canary.f094c0ce.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.f094c0ce.0","@material/mwc-menu":"0.19.0-canary.f094c0ce.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"de510bf2f44db6ede47942c88abfee6266225354","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de510bf2f44db6ede47942c88abfee6266225354/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.f094c0ce.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-XERg43/F20dX3CTJcwjbQoJX7RQ7OqYh5PE7SsKHmRuECTsQkONgd8bRslw2k6uB5VL4KKfFwMF7351x7ZQGjw==","shasum":"5c332edfb3042834598cab30242d8d797d7b4a4a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.f094c0ce.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWmQtCRA9TVsSAnZWagAAHI8P/iy7xs9Hl5DKROsIaz/g\n3khYfWwIeksAdiGviqOiWmJdJWIWJoLTiKcq9YJe3DNVie1bvhNsrBLxORGK\nDkxzG4ngZZaw5VK2jx5IacBbJ4wf/my6HdqdFkvY0FsxKqlPAytE9sIEix0F\n/NEmfj3WCqBKDmnnzZqqAqI2Fbm7lTOg6E491g792HejaO+uA0TgqMpBb+ar\nJHoyRwVhKk02fQXscpbnpOEoZrh77IzbvoJURmodAMry0UKRGnzQziP4bjI8\nckj2SImiTxBuNcc5eg7pUCxPzcEpV7pQzCNynnP0hhpdLOGN6I/35R56eqOu\nyfavy5GXsiPyYY074IakKrp9gTNDlbS8S1F0oYJtlTIjZLvsTAdzwSlYyA0A\n20F0lVm4RVY0e8txT8oD/sjlu6Vli5u026TauGqUxNGhXmZK1Yf5RSmkMA6p\nTH66VhCyzRB/ktDXEJ0XlOC0u0ZXJjOpuYWmreKDJJdD0u9uefysWzbOi3wB\ndaJlVE835hTk2Mx1d8nyS1QsAtOYdYmryVYF8TXN2f4rL40hEWXF5ASsUWuS\nPtaXaS+aRA6XueqT3Bi6tCRUOkY8vawg+kI/5ooqp9vjci+vtKffs8MmeWAs\nNiTSSbarlSam1m3ursy462RNBdWYBFUBHQZPbANBggIU+T6tavkgCC41SCff\nc5W9\r\n=/tjK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE9qc7YtdqWubrw/46d9XuQ137mmXZ/TxylnHeydqztfAiEAlNZw/VVQW0UqF5kCYzPKGKaG4xvH+hEwsMMiuG3xRNE="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.f094c0ce.0_1599759404372_0.34350769339330967"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.c1261e7d.0":{"name":"@material/mwc-list","version":"0.19.0-canary.c1261e7d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.c1261e7d.0","@material/mwc-checkbox":"0.19.0-canary.c1261e7d.0","@material/mwc-radio":"0.19.0-canary.c1261e7d.0","@material/mwc-ripple":"0.19.0-canary.c1261e7d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.c1261e7d.0","@material/mwc-menu":"0.19.0-canary.c1261e7d.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"d3ed845121c57e24ccb397b137eccd91a179c1d5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d3ed845121c57e24ccb397b137eccd91a179c1d5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.c1261e7d.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-S6hTsrYkotj1XG2IgflmjK5EmsAGy8m4pv8LSArcU5YbWKUvJV019/x1RmFX8P4V0ii4LJexne6im8cJNEYkNw==","shasum":"53ebf98edff995c70e2e7857efa6a9dffa64420e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.c1261e7d.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWuBrCRA9TVsSAnZWagAAqLIP/15CgoEKwIkDPastRe+Y\nHv/RVAZojoX7ICD4KzxhQvV1IJXP81ddHvvamNNRjDNvkPrRYwbKCKmfZm7S\nKqA+lQzSH7seDf+8y0JNnJENDJ1EmcpiEipXUvSQY+4d6mmqVNeslKrV/Rxp\nJVUujNKdo6FoXQViZLIxu+IKQrHxmrQ92lr+e9IIyyrBD9asnEXFA0/mqumA\ndsk4wgxiDu59st5bCC7ns135L2LxXz3LMvGcmTYgpFaeia8Pf4pzzXA64fBL\nRI46L8RTjeG0e31VAr8u/TvTGZgXYaMWH5HyCODKIXcStiKL/IkzwERRU8oJ\n2uO7dq21rTIaCd1hqFmEkpzuBZkrWqHpkxQXaAffWozkzYkK5ZFyneV9SHHu\nginkJBvdfheO8rblUTv0VkSIuPLhTaNc8SDGdyC7Ws9f6gcPW6lCpOuSdLOL\n8z9moQ0ptls0yilOgT707x7PKznjne0VUp5RgTbQc1r/Mr7z6js7HqX3EZqc\nfg3J2ZKViXKkhbvnMBMBu1LUooK27kwoOkQ3zqfyPgCfArdJQIDMEuakWxzn\nuuCJTpRVWKTitBT8uR+cQP7V/tD5o4ebV4lG4BZ8YyAsR0RHYq9qsD1naGG6\nLoMqxyHb5skxk5wno3U9drytcUZb2BrYyDWqZD84EOKvYwg/Ca8wkp0nK6S8\nwliQ\r\n=wqEl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGM86KTFrRA6pywBhwM1Hkjr4PQROFzJMzkRM7d8YqsBAiEAubSPJhuogRyA19nY5U9LZ9AfgSL3czJTKFkC5Ec/PwI="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.c1261e7d.0_1599791211563_0.021454539691911467"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.9b39ed1e.0":{"name":"@material/mwc-list","version":"0.19.0-canary.9b39ed1e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.9b39ed1e.0","@material/mwc-checkbox":"0.19.0-canary.9b39ed1e.0","@material/mwc-radio":"0.19.0-canary.9b39ed1e.0","@material/mwc-ripple":"0.19.0-canary.9b39ed1e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.9b39ed1e.0","@material/mwc-menu":"0.19.0-canary.9b39ed1e.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"8fdf88b38d36782496195681d3b1d340ae36fe12","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fdf88b38d36782496195681d3b1d340ae36fe12/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.9b39ed1e.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-zEzcNjI31KPoZ3x+53YrtAPLKvT9J+4c2Q4KBi79VFUjBeZQjU6hIeZGc3a0ZMSgBdzYpX/rHSt2wlupduxivA==","shasum":"4dbd115b83c4686ce52860599e98b63e41a5f418","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.9b39ed1e.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWuCjCRA9TVsSAnZWagAA3ekP/2+741oO6UrlhGKlZdxQ\nd3NtnpTL5WrU7Ni9DeyvgPxamiZtk78oG4ct6Ob0bn/iTOFAYvVPMikhGbtk\nsxWUQyvND7ZSipxiT6m2f9FguCp49CS0ppK7AD73eDbIifcWn9Na0n5GifyE\n4Jqac8/wLkNQbTFkWxlgFwwf4uS5D9kBkCVlE0xzg8e3wo5+5rLRY5VOt/sW\nUFqnoHEKIApkeU3bEtVoE1HPi342pkRseGYSMM4kzZm46MSv63aFUdCiYBwF\nUrWXfJ2pTW4rX/bOFWu1FvNY1ELTWbT7DLT56bVm6BU74KJf7Ur2EuynzeRu\nWH4zYPTVQEsSPEnflXaQfOVqp66xFvjCg15+V5TeJh07/R4gajp4IO5/gBTx\ncAB9hcGfLsfjunIg4vqfl98HCcUAREjdv7Cs7J1Dc/1s0m3I7g6pNiXfHfH3\nTUlheLinTN7oUi+V+ZPIC9buj+sG4yAUwp7WfSPdEQyuZqRgfWbCc1hrA562\nSCIuHwZzLZe5nVnLM7THEPT4r3MRj07v2gLJ0CLu5vivyyM5RhUrpHRZyHoN\nX0VwGgt6BMIam80SJtW+I7SnHC9Dos9rIrEZ5MHlQvVSPBDE0B2eBUn4D7wN\nXog8avqsrl0OCLnPAzXu5DY/TejrBwDDraOdDmaDaQK+AsasXp825pdYeFlm\namyx\r\n=+Fqg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHNo4HAzd2x+PetYueu1HLjFEurOFR6llN3plNgJzW8QIhAPYahTQJLdhjZ1nCI1bS0Xh1UajpRdfJmGtuFf2UMjLz"}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.9b39ed1e.0_1599791266694_0.7105486865130581"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.e67214b3.0":{"name":"@material/mwc-list","version":"0.19.0-canary.e67214b3.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.e67214b3.0","@material/mwc-checkbox":"0.19.0-canary.e67214b3.0","@material/mwc-radio":"0.19.0-canary.e67214b3.0","@material/mwc-ripple":"0.19.0-canary.e67214b3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.e67214b3.0","@material/mwc-menu":"0.19.0-canary.e67214b3.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"9d09adcdde4c822614f34fd4c8fbf1e1b07e558a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9d09adcdde4c822614f34fd4c8fbf1e1b07e558a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.e67214b3.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-fyoAPIIv/AXX/g6TFJtcCqHUtUt9yN1iWosLyspFe3m3Mmou2ImfJI3vnlawLo0gXKENrUZO4MugS2fMk6k2sw==","shasum":"35c3cc9c256bece7da20362ce0a343897a70a067","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.e67214b3.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWuGlCRA9TVsSAnZWagAAkx0P/R4ak5ukDmaliHGS3Ha9\nr/04TE5PNzlCIPRytIpZE9OlxUZhbO0j1PSUeHF7bNC8agHKbZdjLwyYs1Fx\ngg88F/W2ja/RCsF3GhbSSh4vE15XMPrK0wbK2S388PCgYAvKJx9flyI8qKJm\ntBO68fv/ghTikRaX5pS9KWDnwlrTaukUyasW6Bp9ieRR7x3fC1KUXWPvYMgA\nNHwz2LnseNfpQsgDnOoK4S5AAdhmzOzbtyeWpjGXcexjJSZenfhZslA/kWrh\nOydvL+sK1cWe+cV4cT2f85SzARGtQgnsW99unOAk6nkEqGYjxN7BfybeZ51n\n/VpkK+uJZvzY/nt6pGaqp5Z8QnTa1C2NF2l6ITW+Isr9Ljr7XCfKZrkWF3W/\nWD3imRmC4BVTbOROc9uigqGhURs2wQ1TkbTYA6i1n3xvlv6biWQ1LPWyvYRp\n4M6CfOJ5Ppk0PUgOzCF4obJkpl4qW2T4E9Vd1c11zuQSV27D8Sny5IAF+hhv\nev4ITb7m7fm1zhONSAGcGyK2QYombiOSvqxrefdgtFNJMw9sHK+399BVSQt9\nzCCTO1g+FnutOooIpbU/KaltRwCEGRynOZjp7EPFRLhZzz5R3edfBGR2ymrg\n+HDE4hhgH51Ce5KuyqETJMd0eblv36edA4fhRIJFAP08akqabn74Anyk5Hmm\n4BoB\r\n=hLWj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF5dP5qMqKr9ahhaxpqXNgF9lwhZ0+wVgomngXRU/EcWAiEAwFsv3IiJAQXg5gYRco39M7/GFtuQ+UWARO69GPnPdY0="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.e67214b3.0_1599791525187_0.314670085354368"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.36f5da28.0":{"name":"@material/mwc-list","version":"0.19.0-canary.36f5da28.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.36f5da28.0","@material/mwc-checkbox":"0.19.0-canary.36f5da28.0","@material/mwc-radio":"0.19.0-canary.36f5da28.0","@material/mwc-ripple":"0.19.0-canary.36f5da28.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.36f5da28.0","@material/mwc-menu":"0.19.0-canary.36f5da28.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"eb828fe61bd1e331e8d6f63a24f6e78d58858a93","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb828fe61bd1e331e8d6f63a24f6e78d58858a93/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.36f5da28.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-dW7GNv4OkBWaFiPQgk4QjwLv2aVfpXPwdjiMNf8PuxEHDd4ziSKZsxQEKCff2k/oNGnuckHEALimgi04aDMabg==","shasum":"513f4cb1483c4e857794475443ea7342e4e09377","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.36f5da28.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWuJHCRA9TVsSAnZWagAAJO4QAIuH+KKovTQSId/3IwHO\n6gDgfUCnvLnZ+gwH315XVsy6FruCm5EeB3IfjsdjI39N3fjRZWEdCNdvINFp\n5qVmd4P6NF9GqgxB9wOqnk2x3+KevqWZzYX67T4FNWYy1rAJpGjNY/qZwYQj\nnTFWbkeL52ctR1CjmofsOhzNpExcv4VQLH2/1v0KIqWiJ8aCrTQ/Oe9dnldQ\nfDpts3RbJWf9vLWBsSr/Qrn9S5WNFZ2B90Sd2+ePmj9Pp+KfJG4ug77/a62B\ntxw7hHc1G8PPIyRy2eYf9Lz7cDAIVPkKwC0NIKZVhFtJQBseQZscUchvrjcG\nYOeDDN02uymoetYctyJIenpMZks8JeNsulfSre61+hqKqjzoHo84nAsS/E6n\noTCl+PFmkx+h2fsh9kSsHH4LiLOlYtTaAhnOhv1O0uuWOoiEs8TjH/egpMpH\njCBeQGgpGEpDX0b2jrq2VGtW9MllOxY6MBN5p//nbCVEwwc/9QGzjqlgzW8k\nGeBFDuxODX73qHLrGIozHgUZzsLemBTO4wGuV0GmKDVvbjkUssgtmAAHPYtK\nMnP04IbLoFClMogmtx5Kcf0Ab++tGx6QMP7G6N8xNsFdCuLN6uUE2e6m2ijV\nrqzYPoePTSvr1RlbExZoeBrgtIo8MGMAnYe+Y2x9A0CFVQQP9pnTSfP6I8PK\nEU8b\r\n=IpCm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCREkHzk7Jq0r2KpGkLoKWOpJ5G6Z0lyvtOU+FWpydcGgIhAIp608+d/rjsBZ/sfEW4ZwPJ3CckPOfUCOPU+HUHGwON"}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.36f5da28.0_1599791687339_0.8666960697626738"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.3babab12.0":{"name":"@material/mwc-list","version":"0.19.0-canary.3babab12.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.3babab12.0","@material/mwc-checkbox":"0.19.0-canary.3babab12.0","@material/mwc-radio":"0.19.0-canary.3babab12.0","@material/mwc-ripple":"0.19.0-canary.3babab12.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.3babab12.0","@material/mwc-menu":"0.19.0-canary.3babab12.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"3c0abab82c4079d265dbe68e3b3ce3dcac8519b4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c0abab82c4079d265dbe68e3b3ce3dcac8519b4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.3babab12.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-sX0Uub4Z0MSOndUfQ0mEQVRo0RAB13vcNeaIYLaR5v7du1VKTYiB5q/8olw4jufLZmWmsLGRgueENL9hgeSq3g==","shasum":"78f074559efada591a8f98d2f507013ba2432975","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.3babab12.0.tgz","fileCount":45,"unpackedSize":238902,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWuMBCRA9TVsSAnZWagAAd5MQAJZKgYhjtz31hmxXrHLq\nAHD/lN/C0MlDfnBtfwWf7TjqeYEO2K9Oo7KYPSJ5xtQvD5QU+zhIlgOyN4Ti\nlfZYys6loY4SxEWfx+sD97Y6nck3jaMTa39tGt9+7Y3kbvbxTgxspiN8+/Bt\nIKcp+nHZB0uj81j2lJHNIB9alVc4CE4DxYjJ+vQzuzoQW5PpOBBsKiHsO+HW\ntMW/MrgBCdq4x8AROVbjpOwZvYHl2lykDpGsZubormKqWegL30AM7U0wRk5t\nuRqU6OtBdV3DvUTVtN94caH9Cxa2BIbaWS0NWKzswcPXQCEdSHn1yFACW7UH\ncS9Yu4yz67MslRCOIj8V6SinNdMpZhU9yBCP7ipgHAkOUaMTkzcndq01f4K6\nYk4MXkMWN789NjjxiP7izcaDo+Bjfp8GV9cmiqVQ8heb49fD3ubpQ9+ac9dg\nysSW3qZ+/fR+8lPHKESh9vwtbbolaghEqUH17WA4ISl2kx0QrW2NN7dbMxRA\nOeD2nSbn4gU6d1iLw6LsBOxyKgoIBnExnmbYj7926h8e9woSpjNlZzzu5HuK\njBg7ix61bxC9HiEHUJaGssNnjJAH+7gXOwF5vDyvGwe0dOsoRYIC35wZoyAO\nF2FzKVmVxDJn9rc7RkWR8Y40zsYckc2wHXnNyyFhl14MohRZVCiwu2aFzueb\nq62U\r\n=+Ku/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDk6jydesvYUsT+v1wYINvTiHxYMM6xrMNq2EtWnhQdyAIgEXq5ypoLMvhZe1AC0WAzZKZAKzwLKpsbU1FVdJsFy+U="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.3babab12.0_1599791873035_0.7098673847627286"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.a4481e6f.0":{"name":"@material/mwc-list","version":"0.19.0-canary.a4481e6f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.a4481e6f.0","@material/mwc-checkbox":"0.19.0-canary.a4481e6f.0","@material/mwc-radio":"0.19.0-canary.a4481e6f.0","@material/mwc-ripple":"0.19.0-canary.a4481e6f.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.a4481e6f.0","@material/mwc-menu":"0.19.0-canary.a4481e6f.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"de37747ea53bd97e6674642d17f239407a14ba71","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/de37747ea53bd97e6674642d17f239407a14ba71/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.a4481e6f.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-JenpGnql6slz4EsnhEvIfGt86RtRcCMjPJ4IUhG1NxUjHddM/cYz2asDhc8DkPUIPRlmTWCCHNcu3JAMtao/bA==","shasum":"2e7a8e803415e45359caa7c0d8b4f859640769c6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.a4481e6f.0.tgz","fileCount":45,"unpackedSize":238888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfWuXQCRA9TVsSAnZWagAAuUkP/366JMsrC6HaUEtH5wVS\nmSVP0s/+qhlafbjBya2cdS/tum/ajcH4VEkgbTM3ThEWx8XpckF1Niu4bzu4\nZjV4XARlYOb55XOsXbjwHckHt7my092dvVgSkhcwyx/rAqKJkmRw5+KwpGcc\nkEWIge+8BA/aZ1cSYC1RlCEDOsXikbFAp8q1EyqVD2x5/60Nh7z2Z+DU5nIV\np6TN9zUGaMNIR9WAhbD1x6x9ipICIXKk4je1GlXxzGwXgvvuQfB52+TrhJ7b\nkQlknG0rL53RG66DQTVsEq2CGK3BEOodKFmm5D1Z/M4U8nuDrHsgnUviue+7\nz6HKJviGVS1H/Lr8Na/kYW/L/nIBJNstX2U6BkiUccb6AyTXiMqleQIpWEcr\np+90vIli8vkkDwwSfM7zHpLFIZgBHqiG0D9Pj26V8nkDEB0yPmUhuphdc8T5\nk2N60xPqRhdB3K8gIqwLJiNBD02b6Gywf5rSRkZxxBJ7kz9H9TYjsbsZrZrS\nGBnKnLVRx5Oco7qF4g1XYl6R2st0wVkN+5jU2luj+fPtc+jNDqgzjMItnj63\neR+/M4zJTo26q3vKJCW4SoCeb3TwT7iW276+4OirEv2RyGkCfQAPVhiH/W+j\n/bWCXBY7eoHLFtfQe1SNHnEL9Wdsf+vSO60VVhF0zAN+m/lAEeGRXNtm4TJQ\nI2xr\r\n=rRaZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFT5KNIY7n2hMYD5c/4zCYhmcA5IbOl7R7zqwDuG0S7oAiEAibECNQaYNegEE1tfXEb9jpCdiexEcl2mmMnAFo7BIRU="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.a4481e6f.0_1599792591631_0.0267886421222554"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.a9177836.0":{"name":"@material/mwc-list","version":"0.19.0-canary.a9177836.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.744bfe5d8.0","@material/dom":"=8.0.0-canary.744bfe5d8.0","@material/list":"=8.0.0-canary.744bfe5d8.0","@material/mwc-base":"0.19.0-canary.a9177836.0","@material/mwc-checkbox":"0.19.0-canary.a9177836.0","@material/mwc-radio":"0.19.0-canary.a9177836.0","@material/mwc-ripple":"0.19.0-canary.a9177836.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.744bfe5d8.0","@material/feature-targeting":"=8.0.0-canary.744bfe5d8.0","@material/mwc-icon":"0.19.0-canary.a9177836.0","@material/mwc-menu":"0.19.0-canary.a9177836.0","@material/ripple":"=8.0.0-canary.744bfe5d8.0","@material/rtl":"=8.0.0-canary.744bfe5d8.0","@material/theme":"=8.0.0-canary.744bfe5d8.0","@material/typography":"=8.0.0-canary.744bfe5d8.0"},"publishConfig":{"access":"public"},"gitHead":"172468b3d6a388a8fa5360f5754a4a7dec5b878e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/172468b3d6a388a8fa5360f5754a4a7dec5b878e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.a9177836.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-Uwl0fn+n9dNDqFj+5gCmT/gomDqBIMMJ53M1UoqRAUSh8gx4yCp/Ej1Wai6hCWb9zf4G9WGlieofkbC06bc6og==","shasum":"1c84796dff3bac5843a08bdfe294fb05df1b622e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.a9177836.0.tgz","fileCount":45,"unpackedSize":238888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfW7hSCRA9TVsSAnZWagAAGz8P/i/vZvQmCZend9guGcKI\nr+x0TLhPWBMjKBxJgg7w4Sl9Yw+zWxLq7XTPUcLfye5hPN5M/Jo2CfcSXm8h\ngdXUbm5GyUD0IEkq1T590XR2Hex4DTHXXN8RCjw+nBUXnPPiQCpEJ28APhPR\n/rs8kKUXpWAUvsRwEIYdXJm5A10dAERjYRaZqKo7/vX+2LZlNOxozF7pdHpT\npsVveEg2Po4Urt965OGvegVmNpeWtkLaQTU4Op4+1urDqnroO47dJGk6RqnM\ntv72bfcWu+ZD1Y860nqMXWW8dR/8lNb6uMouDPNIwTiTXc3E/asdsNmqq6a4\nmm0zx3gM5vdryQl8R2s8G/V92sw/CbcfUKAp0ihmWjJN1rppmoIUW69E1X46\n8f8n+6gFMLPi4Zbuh3E40Ola176YB8qnDd/BJeHoUmoSGxK+NIhkqQaIA1am\nXs5bqPjtl6Ibsisl3wCqs7OTUXJbQNYNwufUJ9bxz9BB99Nzed7Fk9ZhtcgF\nA+c3Du9QWnAqEenOz/98BP4hZGtsESH5FZtT1T4xvdPwamwr18wHFEtFYQNE\nLqSK6XQCstAhvQYManFw+u3Ajog92PJi8W/ez524mkpamy1fe2Vo+Zucm7+w\nrCAFcyaFzmK/BzqovmvfbSqtuvTcFJ3UfkRi5GmLKxgjYefsFBZ/Pt6j0chk\n80Mx\r\n=RCtr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAqyGocJEZOMSbFy3b5nEg9RLgr0HZrMBgF166rsBIaoAiEA2olRAsFBB50X6ftvZIcf2KehWqu5cJG/mnaSIq/+4Tw="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.a9177836.0_1599846481680_0.7005521849310097"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.b102a3c8.0":{"name":"@material/mwc-list","version":"0.19.0-canary.b102a3c8.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.319bf66de.0","@material/dom":"=8.0.0-canary.319bf66de.0","@material/list":"=8.0.0-canary.319bf66de.0","@material/mwc-base":"0.19.0-canary.b102a3c8.0","@material/mwc-checkbox":"0.19.0-canary.b102a3c8.0","@material/mwc-radio":"0.19.0-canary.b102a3c8.0","@material/mwc-ripple":"0.19.0-canary.b102a3c8.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.319bf66de.0","@material/feature-targeting":"=8.0.0-canary.319bf66de.0","@material/mwc-icon":"0.19.0-canary.b102a3c8.0","@material/mwc-menu":"0.19.0-canary.b102a3c8.0","@material/ripple":"=8.0.0-canary.319bf66de.0","@material/rtl":"=8.0.0-canary.319bf66de.0","@material/theme":"=8.0.0-canary.319bf66de.0","@material/typography":"=8.0.0-canary.319bf66de.0"},"publishConfig":{"access":"public"},"gitHead":"6e9858879b6405bc690bd677e308d5197c609741","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6e9858879b6405bc690bd677e308d5197c609741/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.b102a3c8.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-1MqxO1xEdzzbYRtOOe64FJ9DMna28/tZphcTVAh5uKPE1rvvqIEl0qarRez+wRDuMmix5csWJpn+SL6s6qP9Wg==","shasum":"e4c846904a41c9b6426d746c77e0b0dfc544f159","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.b102a3c8.0.tgz","fileCount":45,"unpackedSize":238888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfX87/CRA9TVsSAnZWagAAIpkP/R5J8AJ8PfmNyGhnOTst\nohgucEVrLSQqiogDjND6CZFkAB3QLmkQHQ6yNH1LrTpImvRXV0oEOOneSOKT\nHqy3qcLnd1OYKlJi9QHuY4qBh7qvcu4UVhlUc3zzm5K7Pw8vs5gIs3V0tYm0\nBUukhCuNjF/SWtJpuFuNMNrb0/KiXgQrUFRq8d6I1yV0tFXfe3efXQhsKR4I\nU9thhbK8fqfi4TBS7q5wEbRzOXSx1gYz7FDd+FFzEjTOBf+XqxnZELZ9s1Hv\nnNlkCVdWkFKRLFFld23MHtfKS+W04M7QFbGaJkB9PgY5eXJqresdyyjaFEco\nmgWDaDjoxeGMj+H86CiuRZDNuiYgAphCkuGIfbbeCMNAFwJJlMt4iFU/5MZu\nTOlT46FMpPU/bogyTqECKPqOWN2K3YbHdqAGOeRwgkqRCccqySjcePYvFD/K\n56SXeMeSw1y9jWqKBQa+oWCwgFyJieBuBRcNTc7MES6W5Vdk1oD9Mt68FMCw\nxJeVLf6R9FNBHYUYWSNqT2uRovT0blIFP3GckKqLO5kGJwaVy5usxQOqQ7vG\nPRv2tS2NGIo0R81AX6KPipAjYHFLkDfP9oVCiJW3fA3S/b4LNyT/cL2hT6uJ\nd1TMrjSPdeS3bUZqkDBkiPy0WgRbAHSkb/yy0RVT6v30YiC9a/f9tz0KnNvv\nOwba\r\n=Mtpj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyb4L+kvbyT8Wh4ByaQS3Jmjgvm3mQmkvFBjK1lGYwVwIgGtXg/AEqRIyDLDmN0HFL2L+bgkv8GYUVHwvsVDF5NrI="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.b102a3c8.0_1600114430956_0.7004706411625106"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.a7fbc707.0":{"name":"@material/mwc-list","version":"0.19.0-canary.a7fbc707.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.319bf66de.0","@material/dom":"=8.0.0-canary.319bf66de.0","@material/list":"=8.0.0-canary.319bf66de.0","@material/mwc-base":"0.19.0-canary.a7fbc707.0","@material/mwc-checkbox":"0.19.0-canary.a7fbc707.0","@material/mwc-radio":"0.19.0-canary.a7fbc707.0","@material/mwc-ripple":"0.19.0-canary.a7fbc707.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.319bf66de.0","@material/feature-targeting":"=8.0.0-canary.319bf66de.0","@material/mwc-icon":"0.19.0-canary.a7fbc707.0","@material/mwc-menu":"0.19.0-canary.a7fbc707.0","@material/ripple":"=8.0.0-canary.319bf66de.0","@material/rtl":"=8.0.0-canary.319bf66de.0","@material/theme":"=8.0.0-canary.319bf66de.0","@material/typography":"=8.0.0-canary.319bf66de.0"},"publishConfig":{"access":"public"},"gitHead":"02e804c299cde57ab03b33a403a43803fa9868dc","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02e804c299cde57ab03b33a403a43803fa9868dc/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.a7fbc707.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-2tPWsnkQvgKazTFRQ96Kq2tUIM+M+B5hIbS2ZcRRyVL7crLfZVeXjKS/bc12PjfhhDJ0WiUR5DfAC5heS6iemA==","shasum":"4afcd613ce13b6e387fe6eb3dbf669eca995cf36","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.a7fbc707.0.tgz","fileCount":45,"unpackedSize":238888,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYOZ7CRA9TVsSAnZWagAA9BoQAKHkTgg6rhWea/Bz1dsC\nojl6iHzfR+FC0joaSFav3s4u4DcDAtvvm2jLE7h+MmXATDjphHfCT6L/3ihw\npqbbKUceXfSZ4nTZWQ+mbmOyST1FJDO1KIOJckKu/4J3bLkmcjkoODfMXCuS\nlzTUqcPbYs3x0/kxgYJ+oO1oCryxC+BER2nItTN3DI92AUaQk44V2OZnVrdv\nYUylzRlgFmSOKBB2gPqadaaTGPBHz/mG/undXCkFJP7borv7A6fNr3BjQQFd\nkaS3JAGwSwdlwJw7RHJ3Hg0BU9p1hD2H1VQAazo5qjPbnZAiTdrqBBPDeKW1\n5pXmVopCZOm2ANHzrSZqsKKsnKKItBsL8GoxXGi366lgXWWimdOjEg4c/Jjq\nUbTIkm4PK2zWNiwnJmZJbIWZh/kSEO9X8XGkUgQNzLHyiZkN309uSFIlUXYj\nAesiiT+DrPXAQ//tlpKrLr4tiA/fDG4eix1ajlnFZsdyme/4tUkVrLpe4Vpw\n5d6lWmH4vHD+S33K17px3AdSL9yZrA80m3kMoKO9IjVstN+2u+DexWhKE2L/\nwaIJ+0ANHeVe9rnDPtPcRCvFkol7SlDvQkSIqSjwxJutfy3TWy5KDh/cRMn2\n0BW+m4fmPjZ+hAhquTO6+LW7gRRI3hbbrMnZgZlbxXD0Me0QTzQt0dNkoprd\nb9Te\r\n=mdMN\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChJZS67VHnScGwlcpmiV69pNjgU+TSeuYeYGkB2ops8gIgOcqG2BZKj5pKU+zajf3uP7zyu/DH+0d9nerhG7s26Ik="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.a7fbc707.0_1600185979274_0.31396290013684736"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.ed6b8660.0":{"name":"@material/mwc-list","version":"0.19.0-canary.ed6b8660.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.319bf66de.0","@material/dom":"=8.0.0-canary.319bf66de.0","@material/list":"=8.0.0-canary.319bf66de.0","@material/mwc-base":"0.19.0-canary.ed6b8660.0","@material/mwc-checkbox":"0.19.0-canary.ed6b8660.0","@material/mwc-radio":"0.19.0-canary.ed6b8660.0","@material/mwc-ripple":"0.19.0-canary.ed6b8660.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.319bf66de.0","@material/feature-targeting":"=8.0.0-canary.319bf66de.0","@material/mwc-icon":"0.19.0-canary.ed6b8660.0","@material/mwc-menu":"0.19.0-canary.ed6b8660.0","@material/ripple":"=8.0.0-canary.319bf66de.0","@material/rtl":"=8.0.0-canary.319bf66de.0","@material/theme":"=8.0.0-canary.319bf66de.0","@material/typography":"=8.0.0-canary.319bf66de.0"},"publishConfig":{"access":"public"},"gitHead":"1367f8f205fb56c27d6146b261ef87d62751f903","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1367f8f205fb56c27d6146b261ef87d62751f903/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.ed6b8660.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-Pil+GSV82R9ODVrFI9ykCZD8mWlXYpdXczxlTTpY+1zfwYeqMdf+UbjlTiBMQ4PowVc7qwJNdd9kPkmTYz4Akg==","shasum":"a30916bc0d55e4c32a099d0331b3abcdb7f0d4cd","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.ed6b8660.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYPkACRA9TVsSAnZWagAAA5MP/A7S3P3m5+D5Lk6PVCyV\nL9stclZxje+w6FFdc4G22dqoDTIG8l/QWGUNIumyU0hIjQtkLbroBudQkfvh\n0MsNwjMpzYkCEKdceE6VtL4tIdZj2VgslKYODvjms5FkikjYSNlmeOganpYb\n2frYxaO5PBwO3N8SyRot67nSBRiDBYAd1vk2MR18/R7gbheW+e6LZDVnm19x\nA9mmMZR1sgdoGy0kG8UevynzgQ/2Jqfzgg4RHc7v8j2lRYDyOXsGYd66PT2a\nnsP0wIRxOk0LqXk8ZzA0yVPF5zlT6fVoP1XpN8TW5Dh64u8KR7k4QMMi6FVX\nEnf88OYBkkRE/D7gIxgjQEuCyi0pFIoriXQGfw4OGwodFbI3EzzWBS108TKW\nWJsd2N8klxMTHZLbzOv0eG6flQel+U8OKOSbnb0NoqYh7mvIShd6bHnrRGWg\nuy6+//X35tst0qR5vW/BgL4TJ7OQKehseJaGxAW2pYrmeb69xnA/9wdd+ANU\nZq5eqcTPfLqoOVKruS6c6Iw4lGQNrGPgYLqGMAJNEzMtL/u0ALLpzX5k+Xm3\nvSuARw09hePVo2kkRF70gA1pzB9B/J6CN+iz65dgjiRtRqgUGBXru9gPTy9v\nm8iSg3KH/V+7USnldIY1jtYR+ImYLI+Q+k95ybrDZIsfN7e8rh7LEe7LXMqs\n2UYd\r\n=b3KI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICjBfIS7suVG8b/Ut7W2Ij7cD9t32TxaDFKkFzrLd8b8AiA7KdsjHpp5Y/Zf4rIk1u3M/rvTnR5EkmAQzpazPcVhmg=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.ed6b8660.0_1600190720193_0.1958301445979591"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.9c2331f5.0":{"name":"@material/mwc-list","version":"0.19.0-canary.9c2331f5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.319bf66de.0","@material/dom":"=8.0.0-canary.319bf66de.0","@material/list":"=8.0.0-canary.319bf66de.0","@material/mwc-base":"0.19.0-canary.9c2331f5.0","@material/mwc-checkbox":"0.19.0-canary.9c2331f5.0","@material/mwc-radio":"0.19.0-canary.9c2331f5.0","@material/mwc-ripple":"0.19.0-canary.9c2331f5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.319bf66de.0","@material/feature-targeting":"=8.0.0-canary.319bf66de.0","@material/mwc-icon":"0.19.0-canary.9c2331f5.0","@material/mwc-menu":"0.19.0-canary.9c2331f5.0","@material/ripple":"=8.0.0-canary.319bf66de.0","@material/rtl":"=8.0.0-canary.319bf66de.0","@material/theme":"=8.0.0-canary.319bf66de.0","@material/typography":"=8.0.0-canary.319bf66de.0"},"publishConfig":{"access":"public"},"gitHead":"59f9c402cf61ed25b9563e2c228a24b4fb13e1cd","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59f9c402cf61ed25b9563e2c228a24b4fb13e1cd/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.9c2331f5.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-0c/nWW4SjRmq8jfrMdb4vKG58Roc1SU0FaHnIdJcAEIo7/Rn46E1l0jgOzHu5g3k2tj6MbKYEjFYJG/8t9lerA==","shasum":"bba5bf893aa398bf1a866989963659c868094853","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.9c2331f5.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYP7BCRA9TVsSAnZWagAAZnUQAITAgw6ePot9guSZLnJQ\nj/8XUT3VXinW7Kw02IgACLW6vmgX96obYtV2TSw84GZklle5xQVY7kRxeR5A\nqAPnEers23S7segDAm2lmXjWmfMPQxB/QMx+xoug4SA5udS7OJR1lakcsR+E\njscT666mvhwOxEGBDZIm1drfYMAWcbQq9m9xA+L0UJJbDNETjpeJ6Nn/ZwH1\nzBVpVyCQ2mxsVJHce/i1X62ANvR5MRfhEmuYA9mxN6U4FfrxExQNEybmrmr8\nSlKPmSIVd8O1JKKHfQOSBqmVD53j7V7vZ5Hadx23MMxcOWtozIqYfgOmGG1s\nSuL2AFdmvXsRbHpWbSYhKzBcI/NPD857ayjPVIAsfXUrMbrtEWdl9waksAT0\nqNDHU1ypEdLlLVg8xUtrxgkcsw3vaNtxZqkPP4ZzrQ8H5IZ/25sPwvsf9Ni4\nb70XNpGszKoNNIWSiCGFo58b3uvwHCrn99qXKWDqoC90ztx6xgD5nneE2+mq\nzp8/h2bd9xFvqN4qUknmAlIUSDarkLVxwvOJcFp1XwUeHjN0u2ilwF3F9UsY\nbvK+85R4uywr+YWbWM0X1BKCJsskykEyGLmefWtRtX14/XSGLpUbp5ech/YN\n7wVmZCRNyIl6xKyawYWwMojALWgOBWlYyAzgDkT6ThKQAWR47D0nr6Rl+1rh\nFrx0\r\n=6UWT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCyIGvRpFfosK6P9B9EyXncmYqbnvQ8Xe/Mq71HoIeQcQIgbDeR3RcIZbM1xya/ekZxc0py9V6pCyA1872mAbb8yCc="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.9c2331f5.0_1600192193500_0.8515069427982769"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.63a5f088.0":{"name":"@material/mwc-list","version":"0.19.0-canary.63a5f088.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a831d4799.0","@material/dom":"=8.0.0-canary.a831d4799.0","@material/list":"=8.0.0-canary.a831d4799.0","@material/mwc-base":"0.19.0-canary.63a5f088.0","@material/mwc-checkbox":"0.19.0-canary.63a5f088.0","@material/mwc-radio":"0.19.0-canary.63a5f088.0","@material/mwc-ripple":"0.19.0-canary.63a5f088.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a831d4799.0","@material/feature-targeting":"=8.0.0-canary.a831d4799.0","@material/mwc-icon":"0.19.0-canary.63a5f088.0","@material/mwc-menu":"0.19.0-canary.63a5f088.0","@material/ripple":"=8.0.0-canary.a831d4799.0","@material/rtl":"=8.0.0-canary.a831d4799.0","@material/theme":"=8.0.0-canary.a831d4799.0","@material/typography":"=8.0.0-canary.a831d4799.0"},"publishConfig":{"access":"public"},"gitHead":"e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e26f8baf20e7e3a7056a6b95b14cbd94c380a1a3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.63a5f088.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-thaq6LgxJ0ez0cOl2TsmhWNZ2MutYbRvwYP4CzVJ9wsbr8xlfl6EvKvB2mhoLEr9SF9MECwWqy9YOdz8AqKBhQ==","shasum":"13ced816e725cb2cec3812ca997dad67dd3ce296","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.63a5f088.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYoXWCRA9TVsSAnZWagAAuLoP/0RQ8sp6aEin3sUlNutd\naPauf0qPQGHdDQzaMQrvVw6opHq42AH8ygIlXP4MB/rONjdQQgiV2vINord5\nQepOZYF0z3SqGzFXj/P2vaR/hK6oBg1aSUT+zm7DoSKQ16zWEaoUDEfjoFlp\nYoG5i5MHeg+6C4bZmSPvveI5dXaJlbB8P2yLqpJ8Qbtb7WIqn2ZDgwzYb9aH\nwSlMy+8XQdB2di3wCGD1uTBr8vnWFbXzOlR5aI24KyNoZFXEeousj5+hTuEB\nn2KcDAuwhshxt9BoA76FggexkpZ+81icESc2nZMcN76MwIWJyJ7vljKWVdwN\nZLAmU8/+5H6Eq5xbA8iL+b/+vsRLNW1KfHBjT1Q6Wn1VjxIsrec3cy3kUFb8\nWsBOyywoODf2ZgB1Mm5N9LPbmZ7BbXbuNO5hHgJ/iU6XYi/UTeCUo3uIxJmr\n3yLm2eNDaQjsKXbDJsaH/EDyswlBRJKZJQSPokn1a6wXViEFiOyzGGgwaiVr\nxV8k2jt+3BVdrVnvKM7/3d2Ws7GBNDqMl0I3H8P0b4/yXKyQ4tQ/yOk3tiDh\nEWF2DOkSA2MQWcreYrP+ClkwB8G0io0gW6qwzPY8iPx4JZZj4LHAvtE95gHp\nbIC+dl8J7q6tFZo5c0l/K3m76G5uu0vh34F2I7azcLVSxogDqLTbC57G0BvU\nx/hx\r\n=zwJ9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGupz7mqIokwhtZf/CLQUviV9U8t3o6NYBBP5P05hlKIAiEA7LK0Cht+FQtQFUVNNWH6B9aC1zQNmZk7paZWgfKAG28="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.63a5f088.0_1600292310101_0.060338593698558984"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.b7995e49.0":{"name":"@material/mwc-list","version":"0.19.0-canary.b7995e49.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a831d4799.0","@material/dom":"=8.0.0-canary.a831d4799.0","@material/list":"=8.0.0-canary.a831d4799.0","@material/mwc-base":"0.19.0-canary.b7995e49.0","@material/mwc-checkbox":"0.19.0-canary.b7995e49.0","@material/mwc-radio":"0.19.0-canary.b7995e49.0","@material/mwc-ripple":"0.19.0-canary.b7995e49.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a831d4799.0","@material/feature-targeting":"=8.0.0-canary.a831d4799.0","@material/mwc-icon":"0.19.0-canary.b7995e49.0","@material/mwc-menu":"0.19.0-canary.b7995e49.0","@material/ripple":"=8.0.0-canary.a831d4799.0","@material/rtl":"=8.0.0-canary.a831d4799.0","@material/theme":"=8.0.0-canary.a831d4799.0","@material/typography":"=8.0.0-canary.a831d4799.0"},"publishConfig":{"access":"public"},"gitHead":"18f169aac3491f89184c2463a837b86dba845e82","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18f169aac3491f89184c2463a837b86dba845e82/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.b7995e49.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-BMInQgzlgidtdf5g6WTbrkEX0AzB4gwSe2AsREkro32jUakF2zpv4Bb7A6iBHuAJWKXNO7XLOF4S9dMwM7d7+w==","shasum":"31299839d1e647e2754bfd5cbf59bc347661efde","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.b7995e49.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfYp9KCRA9TVsSAnZWagAAJtEQAIqWMkFX5Az4mpYojkU0\n5Yv0AdSII2phNoWphalhPqcxJU+q1OJhuUfaRZRoPiCNO6QZkBlZFRoTj7X2\nqpfkJ+N8dasRI+/bSsXaETctupnb5p0fnEV/DIq7rNDaAlBOGNb3crRyD1WB\nAiC0Gemqs11wDM+zIGP0Va4IdjxpTBtI6YeWja2PlpY2ldHihhstAZCEvJg/\nb+JwEmnTnOVWR+tOQwTNB8+wS/SYoEJ3BP/XiCAaZG6d76VZe/Y1H5n0w1yZ\n4YUOAIenFO+2AwcKFhufhx+JuhqcmyKen9u9it61LMAGicb5vUOXmG4yn0OS\nlEZD28EGCi0qvoRXEWn1wDjdptwL6rB6+/WgkNgfU7gmLVIhdt5/TqpxJMIN\nfJbf2QSrrn4heDt7WmNtOAcJYblExweHdQofDYHIZSy/ZVyhEnVgTYOoRmHP\n/UHm6BbNZJwHbX6k2dtdT8oIFP4qsT2ZpU1Wsp2e0t0mr4VihixCoekH5/uD\nubF3nl/lh68dcWOXXcM+pf5vu/d+fRhFtTgG5vUENCQb42UWhalvEJNWEMx8\n3h+4irKjy8Dzhbu+Rl+JYroyNnHlFzjJupFBFOzPFZA+gaYKzgxtvb3zCktt\nOuRzN4jQOJZIekM6+xyPo4JkRvtkXhShsyoSl1hCwYq5+zk/+QUq4xfHiQyC\njpUN\r\n=eA+A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3uTP1/GZhaT1sI/ztc/K0IweN4Tj0Zee8Jo8/tjr5TAIhAISb6bhn961cKDyGeg1kDb21HNCoGBcYHEJs9rsqq/pe"}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.b7995e49.0_1600298826438_0.00846660891774742"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.0da3ec97.0":{"name":"@material/mwc-list","version":"0.19.0-canary.0da3ec97.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a831d4799.0","@material/dom":"=8.0.0-canary.a831d4799.0","@material/list":"=8.0.0-canary.a831d4799.0","@material/mwc-base":"0.19.0-canary.0da3ec97.0","@material/mwc-checkbox":"0.19.0-canary.0da3ec97.0","@material/mwc-radio":"0.19.0-canary.0da3ec97.0","@material/mwc-ripple":"0.19.0-canary.0da3ec97.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a831d4799.0","@material/feature-targeting":"=8.0.0-canary.a831d4799.0","@material/mwc-icon":"0.19.0-canary.0da3ec97.0","@material/mwc-menu":"0.19.0-canary.0da3ec97.0","@material/ripple":"=8.0.0-canary.a831d4799.0","@material/rtl":"=8.0.0-canary.a831d4799.0","@material/theme":"=8.0.0-canary.a831d4799.0","@material/typography":"=8.0.0-canary.a831d4799.0"},"publishConfig":{"access":"public"},"gitHead":"5f18f76403ebea15763db5e696b84d6d20a3768e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f18f76403ebea15763db5e696b84d6d20a3768e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.0da3ec97.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-ksobldL+cDoj3GheF3T6sFhq2Y5UjbtYqFYGmpTFRpUV2pxH+BA6ya/yKCu0UYcpanT3uhM/J++j4Px1JlDnmA==","shasum":"03a744e7cf8746e4da3eaaadcd3d1b281df50404","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.0da3ec97.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfaSSFCRA9TVsSAnZWagAAu0EP/3Jx1lCy2KVc76YiyQm6\n5ontGGx1wGY33ru3Ihvv2H30uujnQnDC/YCs6d7dEQhaSt2kGCzhk0hyTS0a\n0yorU3FzPE4Rcwhkb/neJSIBPreN6yFAf38qHN9RgsKYuGb+C01qOLUXf3tD\nRQKRGqmoYnU2yMsvQ1pgbRojzGZSqAbY1bJyUFFKKwtn4oc0tJ1YsOo1JTur\nC8y3UCjeZi5ABHFbnFQz8rh6AUIMvsE4sQikeFDddJQYWJbdyRhoMXxxGK0X\nwlN043xX8JxPhHQWlxWJfKL16h6KFW0d66Cnq99G4Q9n4/iPQwf500FAxxEx\nakZupWdgDZGrF4S3LfgxuhiDGQ5fVoGiCWA3aLNTsrbjOBZrVsnGQ9ITzqiY\n640VHKnFj6rF2Frxx2z46IJL+SdcPUllWdosxvkGQj9wvHmaV7lJZ8j6A+b8\nYU6Naf5mGAv87XCmvP3sTMz6hagp0g0AE3DNLa3Xu4p4CcrVf8SyUBMDUkoB\n/EsXYhZkq8l2JWTquv7SB6mBDULcSFDQETlEt9b3cPJasrljT0KsSu0u6u8M\nR92yPJzIfeTpaP70vhmrp4tjfglKb7+QvaXWQaBqTBkb0+S/V4A+j5pKAX7z\nfsiCLGAqimfQerH5rTDdSsLmDWCUfOr9IvZIpz7x8tcaP95oCAwtxWGXTSci\nzSof\r\n=vgAj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDgwXn9ANqD8fRiGvznzypfgd1v9QMo0dbdXe4wzmGGOAiEA25H3lA5vsC5xCY8j1/dj1R5d48UGBYu40syGWZK+KWo="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.0da3ec97.0_1600726148573_0.7111544722763299"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.a0793c96.0":{"name":"@material/mwc-list","version":"0.19.0-canary.a0793c96.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.4e5c350c2.0","@material/dom":"=8.0.0-canary.4e5c350c2.0","@material/list":"=8.0.0-canary.4e5c350c2.0","@material/mwc-base":"0.19.0-canary.a0793c96.0","@material/mwc-checkbox":"0.19.0-canary.a0793c96.0","@material/mwc-radio":"0.19.0-canary.a0793c96.0","@material/mwc-ripple":"0.19.0-canary.a0793c96.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.4e5c350c2.0","@material/feature-targeting":"=8.0.0-canary.4e5c350c2.0","@material/mwc-icon":"0.19.0-canary.a0793c96.0","@material/mwc-menu":"0.19.0-canary.a0793c96.0","@material/ripple":"=8.0.0-canary.4e5c350c2.0","@material/rtl":"=8.0.0-canary.4e5c350c2.0","@material/theme":"=8.0.0-canary.4e5c350c2.0","@material/typography":"=8.0.0-canary.4e5c350c2.0"},"publishConfig":{"access":"public"},"gitHead":"4332e148b28dc28d9b324306eb18987b31a80ca5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4332e148b28dc28d9b324306eb18987b31a80ca5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.a0793c96.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-RrVbF3wZxkpHN8qsnF3ZIVJ8SogchZtzV+JX+oXp/2J9VXSDyC7ufSb161V7YFvJ4+qhjPaQtwvCtVt/TXgtrg==","shasum":"26eb741c51048e474eedae692e2154dce682a8a4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.a0793c96.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfai7CCRA9TVsSAnZWagAArYcP/18Kv9MrYurTvZ1Zougi\nHUO8yc0wriCD06owyZjkiDbWDD+3J3TTZqgr10D5FQOmTZjm8ryMefq8Yt0B\n80yEr4ENcjrjdMOzMvYLp5b3vb/IOUIsTSEpcmJsZf9xiPfnJSkTgDQYtkaS\nrDCeVzd0K/tMIx3fz5Eu8pAQ9K3FSeTIykHyCRHkx/3jLqxmvmsylucfb8Dj\nEYigf1KnFM6U1X1jLkpm33h1NUkbxVjRRQdOd2V190g2yEQB4d8O3p8ZroEv\nOAtHz2Ew3AGB37wH9sZ8W/d28dhCtzYKTfXAnltY52uzP2+SLTB1yR3yDlor\nMgJPpuEL2iS1ctYaDEYsr9b5g2OxADBuIQiHH2552Ol7QRQLEnftZlmN80pa\nF0iMF4Rpn6+wFQj/oPAh+UVCae1/ItW037byO871qMvkQ/lr9Tu2DNQD0r3V\ndAKV+ZmjofmuaB1AD3kINvuPNXiWL8mDEJYTyyC5j0QMg5OIoxhwdoPPYoX1\nYj8L8NY+u9SYt0/JXFSOSnoLim7sSro1XUlG75jVfdNZsV1GnmFxXTtxZExH\ndV57+ndVAlBJFsth0em5vd5DRjYmkODpQ0mABUS77im2RUGNSp2YBvMeoUp2\nfDkMXaxL5mhmrSoylG8SStgs8Cy5BeD+5QNrI8HkeIrSg/Jl+GVaXJyiQTmM\n3Q+W\r\n=QICg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF1CLklq7XFCr2VQfiUL2tiLvy+NoGJy1Fhh/SnlTov6AiEA/qhnsPOLdkai/nZFbgF22NgSwSYwSrBOnBoYuKfmnxQ="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.a0793c96.0_1600794305896_0.4084154757625085"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.06998a3e.0":{"name":"@material/mwc-list","version":"0.19.0-canary.06998a3e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.4e5c350c2.0","@material/dom":"=8.0.0-canary.4e5c350c2.0","@material/list":"=8.0.0-canary.4e5c350c2.0","@material/mwc-base":"0.19.0-canary.06998a3e.0","@material/mwc-checkbox":"0.19.0-canary.06998a3e.0","@material/mwc-radio":"0.19.0-canary.06998a3e.0","@material/mwc-ripple":"0.19.0-canary.06998a3e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.4e5c350c2.0","@material/feature-targeting":"=8.0.0-canary.4e5c350c2.0","@material/mwc-icon":"0.19.0-canary.06998a3e.0","@material/mwc-menu":"0.19.0-canary.06998a3e.0","@material/ripple":"=8.0.0-canary.4e5c350c2.0","@material/rtl":"=8.0.0-canary.4e5c350c2.0","@material/theme":"=8.0.0-canary.4e5c350c2.0","@material/typography":"=8.0.0-canary.4e5c350c2.0"},"publishConfig":{"access":"public"},"gitHead":"decf3423597b14fccc721d29e0ec911320eee3a2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/decf3423597b14fccc721d29e0ec911320eee3a2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.06998a3e.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-RdPAbsW7K/+ph1Grwgt6LDkxH5qBVJumKYFuZYxu83TVPlUQFTS+ZnJ8jIa4KYJzpldisfYHH5LJ0V/xqNghfQ==","shasum":"28cb5530964c379557233cec0784df8a0bb6fc49","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.06998a3e.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfakHLCRA9TVsSAnZWagAAfAwP/RZrWWpa8WqLlrSl314T\nlAz7+vQb1cHR1xTHyKuVcvrT8T1Skkhm2yefr9cZedL5E5AAPKaJyI3TGKum\nyvqJceei7NJUxOR/qfM94Egsqas0knJq7RGvm4cOwrODRFzRvShr3Hds0t/D\n5y2pI7158jKQ/3QviKKOrtb82KSqh6KIHpHlpx+KGr4PByyH6X3bsmmpTSEs\naJJuu9Wzai/zuVC7nN701ieggL/tgx8s6nAXQ/ARb11BE+RpqA7Qrc4GmTxg\nyVYLm36UccB4enYDm0OXGfa2foRq5k8GSLb6TJlRkceUdXZkBhtgWrCGr290\nz+IIlG6PRTgq2Jr0EBZpjst23datBqYNvbh+jKzRnVoud8nHRtNtNm5N1clR\n6vE6viACCOZ2IyyKPS/yb3zRUPokiUW5hEcG33b94gB3FfSsbvcfSyW+pa8C\nBEBQM0yQlFtjsrsBoxKYoX7z1zHMaRb+fIQZxojEO8E/NVm+J9+M6K8evtgg\n1tgE7wk1KeHBn8io3KPRMevtL3jGnmsYQQAqpxdKTEntNlArkhE6KLRoOeWS\nVAELsUM3d8IIL2oKLG3Bbg9Cgk7hiiQ+wkD5qXeI1Ev8fxC56XTUBkjI+hUp\n+7WnVfZ4Hcp0r2PkOJYitpUeDJ/AYfncClf50GuD9iYA9qBnejY1NDLQGb1s\nsrHU\r\n=3zAU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9jWtvLbewEpIbKSIw3l3D/SLg9vkxzT8sfclM3Ayj2wIgK2ZTs0si2sqiOEQuSU1cEQhfPeqHz0rNbscAhEDbBeM="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.06998a3e.0_1600799178461_0.6809355667874089"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.3484a90d.0":{"name":"@material/mwc-list","version":"0.19.0-canary.3484a90d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.16c563ef7.0","@material/dom":"=8.0.0-canary.16c563ef7.0","@material/list":"=8.0.0-canary.16c563ef7.0","@material/mwc-base":"0.19.0-canary.3484a90d.0","@material/mwc-checkbox":"0.19.0-canary.3484a90d.0","@material/mwc-radio":"0.19.0-canary.3484a90d.0","@material/mwc-ripple":"0.19.0-canary.3484a90d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.16c563ef7.0","@material/feature-targeting":"=8.0.0-canary.16c563ef7.0","@material/mwc-icon":"0.19.0-canary.3484a90d.0","@material/mwc-menu":"0.19.0-canary.3484a90d.0","@material/ripple":"=8.0.0-canary.16c563ef7.0","@material/rtl":"=8.0.0-canary.16c563ef7.0","@material/theme":"=8.0.0-canary.16c563ef7.0","@material/typography":"=8.0.0-canary.16c563ef7.0"},"publishConfig":{"access":"public"},"gitHead":"9a495a0451ae2f8e95b786a624153a7b57c4760e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a495a0451ae2f8e95b786a624153a7b57c4760e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.3484a90d.0","_nodeVersion":"10.22.0","_npmVersion":"lerna/3.20.2/node@v10.22.0+x64 (linux)","dist":{"integrity":"sha512-TWCmGljrjjS+i/Bg8OA7kTtVv4CANfTUw9i9g1BvYUE6IagjDUgk335zhCC38cq7/MLMWA+0S6neGRG5UT4tRA==","shasum":"c1a0325b2065d01ed6fc7f75ffa8ee530d12b1ca","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.3484a90d.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfanT4CRA9TVsSAnZWagAA/ZsP/jLu03PVyarxUA66T076\nUW7ZEIgn4fiRZpXd7VL1AhKkb1ARYjVF4Dw+5RkYefel+RagJh2G9Pg9poi0\njrLVJj4GVRTPrgUcx3L95lMDcS5v8KV4nEmRbczK8SvvojnDeKE2gH+MsXi/\n1QIX5Sc/kWzco3yCySbinTXM0hS/4o6uqqsnHBSS5bgCAaWxk41RBjaKEYkP\nX0NwtHPf4viuhIcgMchwBf6jjkTBkRJkFLD5cA5f3+iog9FcR3lexS0I8j68\nIG1RUYO25OtBxlaXKc8y/1Jdszuj42XrdUa5OTaKD2t352u+haOQ1C0n46ft\nqsihLORo05uT1xpCn8ZNkvh4/gcpsWy5SwnXZwkCPSqkpPDOSUHr4G1Up1Tz\nptwAVtA6gcwJybxfGlGZAX8R9wD8y9Zjb9HPfglleJXwz8qAcXWEkhhzb5fk\n/uqOBRvjPJv1Sa0uONpz+rk/WwbrPDlJaJi0JlRs4c39Bzgt+ILqvPTwfJWU\nwbqtI8Z189Owd8ihzr+RxaGQ9budLiTWzMHmwSPrzMEyy3iFrEyZOelVeTsw\nTkPRTAYvvof71i4Qu3NFLbL4oGRhcABQfOKs/8RgJIormIEUdMyWPQS7myUW\nEA9gphQHD+vtcm48FBRf6TJfUM9mmRG5Xr7lCrlJ3bAJjVGcdEiG1lMckuBO\nq5Dz\r\n=erQv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEigyQDU24F3gcQz//DVBz0mvftiFNkQqWvtjVUFEdk+AiEA7J7HRkOPvORHYXQNjl+JsMWWhXybT88o50DtRUt8JiI="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.3484a90d.0_1600812279938_0.9600366671026752"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.3f99af40.0":{"name":"@material/mwc-list","version":"0.19.0-canary.3f99af40.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.16c563ef7.0","@material/dom":"=8.0.0-canary.16c563ef7.0","@material/list":"=8.0.0-canary.16c563ef7.0","@material/mwc-base":"0.19.0-canary.3f99af40.0","@material/mwc-checkbox":"0.19.0-canary.3f99af40.0","@material/mwc-radio":"0.19.0-canary.3f99af40.0","@material/mwc-ripple":"0.19.0-canary.3f99af40.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.16c563ef7.0","@material/feature-targeting":"=8.0.0-canary.16c563ef7.0","@material/mwc-icon":"0.19.0-canary.3f99af40.0","@material/mwc-menu":"0.19.0-canary.3f99af40.0","@material/ripple":"=8.0.0-canary.16c563ef7.0","@material/rtl":"=8.0.0-canary.16c563ef7.0","@material/theme":"=8.0.0-canary.16c563ef7.0","@material/typography":"=8.0.0-canary.16c563ef7.0"},"publishConfig":{"access":"public"},"gitHead":"9c1a716646d54bc9aebac750a99d1fa752f60d9f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9c1a716646d54bc9aebac750a99d1fa752f60d9f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.3f99af40.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-ex+naQXZgODlUHgsdHNV8+SIo9XURLPYTJJQSqFLR7ukXYo0Powm2gj/bX03ZLr0PuQSkHwY6ePrtoI/OeuBPg==","shasum":"96a3bfe9dce065e2ebb059908f3102fec8cfc809","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.3f99af40.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbSoXCRA9TVsSAnZWagAA50EP/38jd+K/vdZrmoENc0Mk\nvsHA8Id624EokSm7GtvZoPZlxry3Ixu1f8MJAZTvJVbPWj8stqqteVZao10d\na3QEP5KiLXX3jaXHt3RolXtpY5AN9mqYDr7JRHd2ZchgfuCKJqy6OnRbjGyc\njqApTyVGH+1zuXczylSE2R/+7YE92mJ+mzcynlXIk8un46jGOSYEwmJ0bmJM\n7QS7Qbehkq3I8vXEck7BnRT279TA/Ww+LgoLw/Rm0T9ohFq9Vfb/JEKjyJeG\nVVoQ2zzJFkk/5T+P3g8O2xYNmMFrg1J5upvl/K9O1utt9wmnZJuYjgiimTe8\nnsA6LQ0KOj/QRfR+7nG/pw1uCVyMASAT4ORsGWgJZ8oOH9OJ8zuCqjzn2zou\nz/1xjBspHL6pn+qLPZvsv3vLoD6WWZJh3Y/tOAmUaUdcG8b3zriBQwKFjiQ+\nKMVcQXb6fP/DINh/pMHYdUmTuc8vAUWQUtyxdJzMCmRd9FmLoJP+FKJ1tMTW\nNhzpeGzzkzwJuGjxtWcsJcRnkaBTem4U6NWN0w5YfBjVSXFf2VCtGiwOneCT\nTXK6wDp7zhgqTL6wfT6iV1x2EL3VzGtghMA52SKr41AYJlTvhDCzNl6IzYlJ\nh0gE6zEg13QFEAubEklLCk5xqC3/sF6IT/Rp4ExGb9/kDuiy6B43JZx8gxXp\nBAk/\r\n=IxlJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHFebjL8TLdBneFhtz4ydmelgBqASSrbCc3vxc1BFh1xAiAL7KFx6S8NXxLoe6bfw8iYS7Xk6c2kAYAyWwdJqfR9ZA=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.3f99af40.0_1600989719287_0.5405984096152268"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.72aa1129.0":{"name":"@material/mwc-list","version":"0.19.0-canary.72aa1129.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.d4cd83a85.0","@material/dom":"=8.0.0-canary.d4cd83a85.0","@material/list":"=8.0.0-canary.d4cd83a85.0","@material/mwc-base":"0.19.0-canary.72aa1129.0","@material/mwc-checkbox":"0.19.0-canary.72aa1129.0","@material/mwc-radio":"0.19.0-canary.72aa1129.0","@material/mwc-ripple":"0.19.0-canary.72aa1129.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.d4cd83a85.0","@material/feature-targeting":"=8.0.0-canary.d4cd83a85.0","@material/mwc-icon":"0.19.0-canary.72aa1129.0","@material/mwc-menu":"0.19.0-canary.72aa1129.0","@material/ripple":"=8.0.0-canary.d4cd83a85.0","@material/rtl":"=8.0.0-canary.d4cd83a85.0","@material/theme":"=8.0.0-canary.d4cd83a85.0","@material/typography":"=8.0.0-canary.d4cd83a85.0"},"publishConfig":{"access":"public"},"gitHead":"b0de5dacb779cde3abc9f66672e5a936030fe63f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0de5dacb779cde3abc9f66672e5a936030fe63f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.72aa1129.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-fbH5rNehsCNAH9Gxxo8gYDRl71jWQmq5gxpo7+Ilz8GIXA4KH0zp9SHJnGaAfobeq0p+XMIre6lgkhoY/y5QZg==","shasum":"e7cdb8af2be9b16d29a0772aaeaa6f2d57e3e0a7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.72aa1129.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfblwpCRA9TVsSAnZWagAAQ5IP/RRUN59CHe7aDwBCcjIC\nuV0wu4armIPCuNPMnKmhpsW/uRpUvQ+BeVduYXLThvprAcj9qFS2sMrwRm36\nrbNnksjDWs+CiMV+Yf3jL9uwclDTCtKG7x68L0KOWhcrv0QNIveqbnn2hCEl\nfR/ICKj3ChUrlP31oWTrspYeb1hQB3dC/B0S1c1yiuiGvb68ZTMOhYkv98Rh\n4jsxGQl9O+TqgwKCEpcNQ3xxusbcUP/lptZCjoDDeoghp8Z2Kvud0TeTxDXu\nUkuUw2V1PpQt6Ta5PRMYPaprv9UMWIXui15pSjTO5z+V4r0QgqQpOLmt2cpZ\nlM6PK2Hm7KVps6NerTmCi7fOe9PXaQkrVN7du8aZp0ZRSln2BN/Tk0gI/sij\nur7kjZB6qVGnNW6tZz+B/7tD/QzHcF07AbjUlfh0sfsdpbf8nIeGOBiJruh5\nZbu/aNilqNUQoAB4lklHby+64J9TtcV8M8NspkAAWzTIC6aoXjl8jx/JBGUM\nKc6iVQqRozpRTrxMdo1xrL2g/o3Rz7Zas5F029kQwSfhxYSKAE4PL2RhtTHR\nU7BeMsOWiL1rz1YtH/GWuvmkeT8OoihKQ6zb1kiJK+dmkAEYbioeAvS0/sD4\nEw94TBdc/1yUoh0D+OwCVM90s8AalBJ8JG2xzorKy2XKuhFwo20/ij4RVm/W\nEgqu\r\n=A7A0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAxa+Yj9LcgcZx4gZURspAbgY/5pvzKTRY9Tsaz1xAl2AiApb1PSTEO+BZOJOIK30po76XUbaBxqG08DxxMgnTb4sw=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.72aa1129.0_1601068073190_0.7636467370436202"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.394fd3f6.0":{"name":"@material/mwc-list","version":"0.19.0-canary.394fd3f6.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.d4cd83a85.0","@material/dom":"=8.0.0-canary.d4cd83a85.0","@material/list":"=8.0.0-canary.d4cd83a85.0","@material/mwc-base":"0.19.0-canary.394fd3f6.0","@material/mwc-checkbox":"0.19.0-canary.394fd3f6.0","@material/mwc-radio":"0.19.0-canary.394fd3f6.0","@material/mwc-ripple":"0.19.0-canary.394fd3f6.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.d4cd83a85.0","@material/feature-targeting":"=8.0.0-canary.d4cd83a85.0","@material/mwc-icon":"0.19.0-canary.394fd3f6.0","@material/mwc-menu":"0.19.0-canary.394fd3f6.0","@material/ripple":"=8.0.0-canary.d4cd83a85.0","@material/rtl":"=8.0.0-canary.d4cd83a85.0","@material/theme":"=8.0.0-canary.d4cd83a85.0","@material/typography":"=8.0.0-canary.d4cd83a85.0"},"publishConfig":{"access":"public"},"gitHead":"f7ed30422433da24768cee2e9ee84140331af4e4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f7ed30422433da24768cee2e9ee84140331af4e4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.394fd3f6.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-qS3sYGZuBg20h+0acfpo8WOvKzumoXRZrYvhPQaFGANqadZEcj4q/HgFTlFn7Vp9kaN/DA5tdlm939lNyprNzA==","shasum":"cc7d9ae759c93e51c570cd1db6284b6799fe7953","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.394fd3f6.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfce9xCRA9TVsSAnZWagAAgsgQAJ/8s2ApZjlAssdfb4fT\nARuOgTwmpe6YqY1ODVhT9YJH4Oqb99kVoXg2qzT33TyJJvsb78raz4LfDYcw\n87SeQUd1OQdiIxoH0HkGzcd6AdKaJLY4HUcXY+SMHXOEIhWGlV1vdSWIM0W+\nwzrxNd65anFiZLrB9sVuiuiOgYgInanRxgWlNIrESYNMtOyhx0KAr2ty5Ozm\nYJHDBlLyR+hORdJilWk6PMS674k/l3oj2KvN7AzAaLv3CZCLW6md1xxbuIBY\nGPqm/6uK/bQgQ7lBLRQ6OyUE4kYrZqCnGmV6x2AHqjd0JmgKzgsGBE5ixXja\nCZQirPOFF+Tz5DR2dDWThWCfy14Ou/haaeYagBHPekUH/XXIARQC2unFayOC\n/VbNlOUd+gNs7k2HjWgji/JOckyC/1DEPNueoJLU1/pCWzNu7sHmREOqbBTI\n5c5gTaBrhdOoXlU3TBFkvVBt2kaEwDg7pAWsadAFncVxpYPugiFbe2ezwa9L\nIHNPpBxDQ2mgerUep68oWfhGUqt5pBoiDCBbFmBy6/8WGTK84RdHNVs2SPcL\nWhxzm3hLvwjg3od7/8pQv9PeWpCopjfcJNew/s78cyJHmbJ9DNdmH5uful79\nL1nPVnUzdu1DjidMEtnQxXwXkYkfzktvqtVdv4se1uCls7PSv0keqlquNujb\na7qb\r\n=zISA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF7I1Y3c8PuD4H9fbPta55FMun0g7Sn3p7HJFw9RXTDNAiAqlw2DFCN/ckmrWgy38R//M8hsjoOMssnGTk0lr6tr/g=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.394fd3f6.0_1601302385393_0.47569448745915577"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.347110f1.0":{"name":"@material/mwc-list","version":"0.19.0-canary.347110f1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.d4cd83a85.0","@material/dom":"=8.0.0-canary.d4cd83a85.0","@material/list":"=8.0.0-canary.d4cd83a85.0","@material/mwc-base":"0.19.0-canary.347110f1.0","@material/mwc-checkbox":"0.19.0-canary.347110f1.0","@material/mwc-radio":"0.19.0-canary.347110f1.0","@material/mwc-ripple":"0.19.0-canary.347110f1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.d4cd83a85.0","@material/feature-targeting":"=8.0.0-canary.d4cd83a85.0","@material/mwc-icon":"0.19.0-canary.347110f1.0","@material/mwc-menu":"0.19.0-canary.347110f1.0","@material/ripple":"=8.0.0-canary.d4cd83a85.0","@material/rtl":"=8.0.0-canary.d4cd83a85.0","@material/theme":"=8.0.0-canary.d4cd83a85.0","@material/typography":"=8.0.0-canary.d4cd83a85.0"},"publishConfig":{"access":"public"},"gitHead":"b51682018a9a68b95f2c2cf2ebd16682dc3f2e22","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b51682018a9a68b95f2c2cf2ebd16682dc3f2e22/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.347110f1.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-IuYS/J6SFfXA04mKf2skMWNEvym6BkLcrL6/dQSUoE0mnFJaRbHnKJzg1dIBkmfc+F7nt3PoOFIW+f1uHRVYNw==","shasum":"fd893eb8d6f14d7635ab1c9a75076be1127c9efa","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.347110f1.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfchRtCRA9TVsSAnZWagAAbogQAJefTWnUwtRufk1jm6a+\nZek23l6t7HV6Em8HyndQvveU62g0xaShf4yXrbPyfhNjDc3AvY9Z2fPtX//h\nnGuL1Y0fHt5fHCnXFJ+XeHGG/FDNy09ouDG5Qwxopq4rkvEA8sHMB7ZetvKm\nPyrnOGWInrjkRMLGr28wbW0Pdz9d1ByP1POgGXM8d81rAa3LvC36z9jCJ3p5\nG10jCL+7Uh0mp0eVnlZPMqxBpvV+ScIysuulsjvLvabdiSOASzZ0UZMa6mIb\n7me9b1iDeDKSXbOXsfEDcLlAlo/PG43K3cpGlN1tibgUNp2SGtwNdLFyAV5G\nPNA9w3RDNfwn4yxeyjbLODIEVlvZO0oLrWBK9tqPkpUA/nfLm465xdXXCkNE\nCgHALalXwzmvxdesSpD51z60bT9deBo0UQwN5K4L1+6MA2MQztvJM8nKf8Jr\nzfF8+P20/pVA9yt2BNibezIPm/Kwx5SPmyhoJvOE0i2zP++BphFteVQ6Dmsx\nnbEMk4sZcHHfNk1DLweaPOSkzJTjDo7CocwGSx9IPn12eSUwX1kYQDqprQvt\nfIcCLvANaEqMBVtimlINXXcgIEJdiOYpTwHabJrJtIPt7mHI/kjLKjmLy2Rv\nlmAR52HkD/1w68ZNybLU2jHnfWgp4UAeK6kDzz1KLwOtVJAvzzu6luTL9DbZ\nTE3r\r\n=5gGz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIArFiEUjNxfWu9eIwVDPmci6L2ymJYawGKNEMENtEvnwAiEAnWf52kmgsSk+G71f0wz90TA+6HB5HrmdQzEhSCNZ4ts="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.347110f1.0_1601311853272_0.7313061160112355"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.5e330bb9.0":{"name":"@material/mwc-list","version":"0.19.0-canary.5e330bb9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.d4cd83a85.0","@material/dom":"=8.0.0-canary.d4cd83a85.0","@material/list":"=8.0.0-canary.d4cd83a85.0","@material/mwc-base":"0.19.0-canary.5e330bb9.0","@material/mwc-checkbox":"0.19.0-canary.5e330bb9.0","@material/mwc-radio":"0.19.0-canary.5e330bb9.0","@material/mwc-ripple":"0.19.0-canary.5e330bb9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.d4cd83a85.0","@material/feature-targeting":"=8.0.0-canary.d4cd83a85.0","@material/mwc-icon":"0.19.0-canary.5e330bb9.0","@material/mwc-menu":"0.19.0-canary.5e330bb9.0","@material/ripple":"=8.0.0-canary.d4cd83a85.0","@material/rtl":"=8.0.0-canary.d4cd83a85.0","@material/theme":"=8.0.0-canary.d4cd83a85.0","@material/typography":"=8.0.0-canary.d4cd83a85.0"},"publishConfig":{"access":"public"},"gitHead":"edd7d263d4d4dfba81c2b086b08b2be10b533b2b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edd7d263d4d4dfba81c2b086b08b2be10b533b2b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.5e330bb9.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-C0awVmATrwTvgDl4r4oUg9e+RfPwwHqDGxENd6wPXm7Jz1Vv3VW1ziCJqJYWB0BM+KcAJvKHwZADSh3GsqhrGg==","shasum":"4f2310367ce69d22280bcaa64c751bbdf854585b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.5e330bb9.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdQBKCRA9TVsSAnZWagAAuCUP/A5dfi4hGYklcF1XS0aS\nrrJVWc5Hr+PBolnrc72K9LXubeXc2le0ffz629LLtzdycpLJMqBujhkMm6Yc\ni+k9onqInqQFq6VnsbqSSQUXDWMQuW/QS9pvy0iHVEUZlFapVqGgM9o/sZOG\nVKfWAPjqE3t5zmJXaMs1JeAX0etSdV8ndZQvXqYrf4n32a2knz99HicaobGk\nbc1xwIOLFVJPQJ+1Lgfl5W90OLDG2h7eM6MhY0a/hY+MTVDizXPdp2Duza+W\nHYVfzsvh9AP/CWXuPtTunzHMADWnFMOvsNZbhKd79xrkgrPfvt+f3HxbehPm\nU5Dn2ObpyHtzgx1x5R/d86Jp0hatFzgJn+CxBbLUp4Oo48j9F4JsFFvV/Lkg\nJDgCk5FZT2qpgj6jlUA/4sHsmOsHmHC8kk0lxdXQiK2di1p3V/DyqjKhzRTb\ntBsY4lIWWJ5unxnvmHcJmamjypiZkqRrHeiyq01MwJqvtS57amEXZhnrNzZb\nUPhYlIyWRO++V/1Q4GFbUwUL2PKQI8YEXbq4vYbhNv3g1OXRdqmfdKQ73+Lz\n9Bgz7r4iV3Rk6YgQiXRO+Xq/WsNgpFdMfLBNKLqsZNTPLYp4F4+f6oJDvG/c\nJ/P1vQ9kPTGhWvMKmrII/BCaEcOZfwtkr5hKxQ93fToMfOcpfB4juww8lUcU\nGBoL\r\n=2Cq3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFQb4TT1KpoqSlHiyIidkDepscIgcdb4cG1ozxddPCOfAiEAmzqhrWmgTNwcAQY//y1P+apRvHIpxHiIJRJD06enqTI="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.5e330bb9.0_1601503305720_0.950345419588617"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.30b9e3a9.0":{"name":"@material/mwc-list","version":"0.19.0-canary.30b9e3a9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.38ef4501f.0","@material/dom":"=8.0.0-canary.38ef4501f.0","@material/list":"=8.0.0-canary.38ef4501f.0","@material/mwc-base":"0.19.0-canary.30b9e3a9.0","@material/mwc-checkbox":"0.19.0-canary.30b9e3a9.0","@material/mwc-radio":"0.19.0-canary.30b9e3a9.0","@material/mwc-ripple":"0.19.0-canary.30b9e3a9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.38ef4501f.0","@material/feature-targeting":"=8.0.0-canary.38ef4501f.0","@material/mwc-icon":"0.19.0-canary.30b9e3a9.0","@material/mwc-menu":"0.19.0-canary.30b9e3a9.0","@material/ripple":"=8.0.0-canary.38ef4501f.0","@material/rtl":"=8.0.0-canary.38ef4501f.0","@material/theme":"=8.0.0-canary.38ef4501f.0","@material/typography":"=8.0.0-canary.38ef4501f.0"},"publishConfig":{"access":"public"},"gitHead":"1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dbc47f1a0c4601e30ed5a9eb0fc9f9b56564e1c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.30b9e3a9.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-sQrzuRzk7kN1TdNkOZuUT5Blk6k4/8/XRwuso7yO2AjOTmI9qEO75H1oTgZm0F/WAViG5Af1a0x7hOMEvAFpIQ==","shasum":"52e8d5fcf60a26c9285dde215a522af71a047d9c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.30b9e3a9.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdQj5CRA9TVsSAnZWagAAb4AQAKJWRKYIR6CsC7VpHb6T\nRjLbrttLBX1Hvhk0t/IXV/xRkc+heMxbPfBHiEztc4sNczTHC7MAdq4tL1oT\n2DV7IQ4XGkrnZVjlvopgnNrwkZ2DdR19w2D0ckRsxGSpYP0ovm3yeRwzP0af\n2M4F93P5b7srNGYTUwyVzcuJ8it/MpS4hSo3umdzq3ulIECyyAcFMx3YbOey\nd6c63CHTtkHJWlQLeUD1UYGN6NBiwk1p5+ZaZ6S5Cwk4lat8aG7zoQA+63/H\nAdzhXmYJEMEIWyb+o1jXJfRkob+2IKx/ec0tPRhv1fKz5OgOdZaq5U9pu3gj\nmu9aCgM0K8yvY5y94IT35tUl4x3vFhu4/p69Gpv0+V9uglBsqs1uc9aFcuqI\nxXBi3HM/+hBCbEoeUL6QuJiAHsXuBavRUMi7XJGYY+3HQ+E/l0dJwIGszY7S\n5dOjmkjI0ezP9g38SLUwYq5PrSNGn0BC/xuOCetxSez7BZksCp2ts/8ZvFsN\nF5WbzJmRtwbilyfb58jTGYy5YqX/U2tcPChxWets3UyAhS1bWCKTdcvqY/vm\n0i2ulXYQhxoVr+WesBON4XKoBBou5CznwI0TY6XN0Gyp3Y3udvTk1MBwu68J\nj/R4ivmre1bxME2OQLI5bFH8PzTZcsla1BP11bs29S7Cq0ymjmLy40lzC2h0\nPelg\r\n=RJ86\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDeeE/I6QFA2NDIySbK5QuxvYLgrCzuW5g1WNn9U0kLrAiB+cEs5ffzHmP/ArZFhu009l3sNCgTWiTPU8rIRiWRI/Q=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.30b9e3a9.0_1601505528625_0.008724488506791639"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.7bb04b9a.0":{"name":"@material/mwc-list","version":"0.19.0-canary.7bb04b9a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.38ef4501f.0","@material/dom":"=8.0.0-canary.38ef4501f.0","@material/list":"=8.0.0-canary.38ef4501f.0","@material/mwc-base":"0.19.0-canary.7bb04b9a.0","@material/mwc-checkbox":"0.19.0-canary.7bb04b9a.0","@material/mwc-radio":"0.19.0-canary.7bb04b9a.0","@material/mwc-ripple":"0.19.0-canary.7bb04b9a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.38ef4501f.0","@material/feature-targeting":"=8.0.0-canary.38ef4501f.0","@material/mwc-icon":"0.19.0-canary.7bb04b9a.0","@material/mwc-menu":"0.19.0-canary.7bb04b9a.0","@material/ripple":"=8.0.0-canary.38ef4501f.0","@material/rtl":"=8.0.0-canary.38ef4501f.0","@material/theme":"=8.0.0-canary.38ef4501f.0","@material/typography":"=8.0.0-canary.38ef4501f.0"},"publishConfig":{"access":"public"},"gitHead":"f4137a832374dd43b862ca8a4db665a59c1a70f7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f4137a832374dd43b862ca8a4db665a59c1a70f7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.7bb04b9a.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-Qw2VGdyQmbiIXHJYPz/AemiVMXf24otK4GFUACPpZZjxu2764am3XLyKJ54Xgjm9lVnO/oaDD7rgGjL31nCJag==","shasum":"c9938dffd70dd5888a47176dbcfb617bd42a8803","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.7bb04b9a.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdmT5CRA9TVsSAnZWagAAy04P/jH5BOCT3UP40RLRjQXz\nSTGvufFys9n4UDd51bCf8j4OA1ky9GX+oU2HZrKDi6M0Vzicwc+hBhFaBrqk\nytLnwFFXDa5po6dTs0JHlvDJ/WExE5JSrxTyjKdetY4rmuqeSj8ciKKTAEb+\nqjCicL3U/j/cIKJq36k4SR42dti4/8E0xqtT9LbGh03QCY0cDBDpwOHGx6zx\nRE3AxfJahpTrMKBcuvNwvIGQUXr23YmuF0W7jpETyAh7TGLHj8upKBiB7vXo\nOOAmKyjis6zruYRhDsPHmh9D83KmCto7/WAQ8AB6F+uAXurYFRP/nErIw5gA\nH8qlhCnbvJ+8jDKBQuUEIZsJB2yHgKi3umv9ndEKBdU0NOzuaLLEx02sps7N\nFpP8N0a/dQ9TKHFnlwPsEpvrRM3rJN9u0+7ssRRImjyzyAHMPdS2rsWdHQjd\nxD4GfjYlG/aqCQJ+2J8yR8xrc3Z08J9eXEUGz1UuEa0eDy3Moc2jS20vAikH\ntuy+fZKWFShlz/WiC7192EmAToSC89XMMr4OK38jqOZDzV48VbZjznDlM/8d\niYwTtoAa0St+xkEFytcLYUwqECWURIp7SYMRvhf8itwohVFSkjcLcFUihdNJ\n29copDR9EhajqJYHx3HwSZ1EaK7pP5a972W4YXtdVng/7AmPY4lWw2fr9umS\nYdhQ\r\n=BE/1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC1aPvxZbPeBkwuoinKWUJdd6wVOnrpx2H67Fyxmto6WAIgAshzguu4R3bmRc6zrS05Jy0D1yCOFmJyxkMYBPpXNms="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.7bb04b9a.0_1601594617139_0.21737309099021407"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.615d861d.0":{"name":"@material/mwc-list","version":"0.19.0-canary.615d861d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.38ef4501f.0","@material/dom":"=8.0.0-canary.38ef4501f.0","@material/list":"=8.0.0-canary.38ef4501f.0","@material/mwc-base":"0.19.0-canary.615d861d.0","@material/mwc-checkbox":"0.19.0-canary.615d861d.0","@material/mwc-radio":"0.19.0-canary.615d861d.0","@material/mwc-ripple":"0.19.0-canary.615d861d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.38ef4501f.0","@material/feature-targeting":"=8.0.0-canary.38ef4501f.0","@material/mwc-icon":"0.19.0-canary.615d861d.0","@material/mwc-menu":"0.19.0-canary.615d861d.0","@material/ripple":"=8.0.0-canary.38ef4501f.0","@material/rtl":"=8.0.0-canary.38ef4501f.0","@material/theme":"=8.0.0-canary.38ef4501f.0","@material/typography":"=8.0.0-canary.38ef4501f.0"},"publishConfig":{"access":"public"},"gitHead":"31f7a82757513b3944c605422e6c70eef13bbd54","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31f7a82757513b3944c605422e6c70eef13bbd54/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.615d861d.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-bJo22B4n8KSPlQfmeX5BTscbCEQy0VZh70GSsrIVO7Oldon4Fi4m9Oq1eWZ2C4+Owg8JEKrHqfCmEuNrUC9aHw==","shasum":"b287a9aa0c3e7a0ba8935a340ed9f72dccc51651","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.615d861d.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfdoOFCRA9TVsSAnZWagAAy8AQAIn6pumZ9hnBB0rfDiZR\nxepDDVJg1vpBBQOTJ2BUq5b1Pk4w0oqDVLcysxlfT1qK5CaJfgfueZx7m6Xp\nzzg5GbMW50RzVI1YW9TPf0DCUbGrASJCB0xfka7AASH2BcMgmco9YPHcrOnz\nwbg4ogcipybOJO4Pma1LzuDXlTQQqulyTYLWxFx0RMGZtfAhbQ5WqcvBqeJA\nOr0TzcRQCgPCPdIq2u6UMS00HlSvoWUfmobO6/Mt2jvuTceoXXTyS4+K+tsW\nIYvYdtIf0thJ5FOrv5Dkd2vpHG5t2cuD6iC4qyly6G4ZMfGHRE54wWar5Nca\nq/qvEOZ+5Bxo3pJRv2MGL+N6kpj47OqJEmT6Mw4j/6ZiR/DJq7QPZBV6RSNQ\nXmeeqYysm/NqRFE6haMkKCbRS++doNcSw0X1dvUC4n2W0KixtFGZ9bqjml/S\n3ROjImClbA/5Nx0BYprxI5blrGojK7HmruuNvcTAI/SX04TjBvdE1l3b2D0i\nLD9KUjerHxfQ2YqrT1TB59jFxRX4yGyBKlSWFvaVMtNPorWXHcvwSoumxQYe\nIHPa/fv6u4vBbvggE5Nspu2cnfY8n+rL8Ov6GZOW03rehsm+JK1/QTzokbZt\nMEgxr2qwcOjcMub+iXCJFuqmW2h/UYt3dKotZQ0h+1HlBEFQoEWiVwffdnis\n4N7z\r\n=f5gg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID0yvq9r977Ro9UPnqMhLx2eiVw/vEd5KhrGfK/fx5JUAiAp+EjhPOIKk4/HXUKnlV6wdo1TIOqEcmykIWNLNg+J1A=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.615d861d.0_1601602436885_0.5138474072553132"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.af110e86.0":{"name":"@material/mwc-list","version":"0.19.0-canary.af110e86.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.38ef4501f.0","@material/dom":"=8.0.0-canary.38ef4501f.0","@material/list":"=8.0.0-canary.38ef4501f.0","@material/mwc-base":"0.19.0-canary.af110e86.0","@material/mwc-checkbox":"0.19.0-canary.af110e86.0","@material/mwc-radio":"0.19.0-canary.af110e86.0","@material/mwc-ripple":"0.19.0-canary.af110e86.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.38ef4501f.0","@material/feature-targeting":"=8.0.0-canary.38ef4501f.0","@material/mwc-icon":"0.19.0-canary.af110e86.0","@material/mwc-menu":"0.19.0-canary.af110e86.0","@material/ripple":"=8.0.0-canary.38ef4501f.0","@material/rtl":"=8.0.0-canary.38ef4501f.0","@material/theme":"=8.0.0-canary.38ef4501f.0","@material/typography":"=8.0.0-canary.38ef4501f.0"},"publishConfig":{"access":"public"},"gitHead":"ec4508e75df333e18bfc60188de82eb9e90a6d01","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec4508e75df333e18bfc60188de82eb9e90a6d01/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.af110e86.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-1pjgt2b6fNRdmVOLrg77NSErR+fKCf0sVm6RIOetPcCMwjmlYjzrJT2qkVjyd7tdp5t3Z2ipq0oBeTvy+OO+KQ==","shasum":"265c104b1cb31185b6471e6bb004150d6a622765","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.af110e86.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfd7zECRA9TVsSAnZWagAA3DwP/iclBoZ0kF154YQGHbsh\ne/SX5DLO18YXFP09+GEi+R50yKrDEH6YqKF3IC6lztmjwwkOmBM5KrxZphDS\nvLEdjLiaQSE3tsFn7cQqMlNAVZozfqmJewN4cH09WvGtxr2CEJVqEreyVVgH\nGseC5Kaf1n7x7yW01+xM4h89KJ2bBUyarUzN5h7tSo/PrxfwAN55KVRSWUBc\nfCpB2M+7JMV7HuKHJ2Bw/B+Dc4kNLb/kHAgiCORjRBYoh0tUT4BZUxcpMa8S\nGTJGAeID0YI+u2W9Q6rfnPGV2FcZhcPFZrQsGKNZJi2eCHNnjRCG0dtVTH7l\nJ3KNHgZHiQgjw0HfHUZ/czU4hSj/wd30eAQt7xYQ1b28pqFmh0SVrmXTjIeN\ny01IlVViN2YuK4uFywJ629hsVofuSx02bO1riN0dXpBxTOhYZqRtF1iuIZCz\nwI99rkBL6ZUjIxUihnvVJeH7WUWaQOrtDhKoMOu2SYcu1gbkePoRndHr2cT0\n6vJKnn/7FKECKgu3ZMOmYOcVc0miFHY8kur+dw+v50LW4Mpc/T2ErkclDMSJ\neVLySzLRM7TX2dfUQ8STZ+B0mc1cmEIAEf7QbUkRzDb797yZYQeFOb2hnE16\nSvU+eM+a7+upFfAcq1XS3pHzUYZVblVmFSI5Eosguw2BzbLA0hsIJzG02FNb\n6upC\r\n=TRbe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhXSPmMg4LjmvtSSgoocruAqAXiM0U6VnJRRDfICs5/AIgTliYOvOQ0sWUeaLU2y2G4V6iASxt/GXSDivauC+Zc+c="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.af110e86.0_1601682627858_0.7291852997939434"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.89d27ca5.0":{"name":"@material/mwc-list","version":"0.19.0-canary.89d27ca5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.774dcfc8e.0","@material/dom":"=8.0.0-canary.774dcfc8e.0","@material/list":"=8.0.0-canary.774dcfc8e.0","@material/mwc-base":"0.19.0-canary.89d27ca5.0","@material/mwc-checkbox":"0.19.0-canary.89d27ca5.0","@material/mwc-radio":"0.19.0-canary.89d27ca5.0","@material/mwc-ripple":"0.19.0-canary.89d27ca5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.774dcfc8e.0","@material/feature-targeting":"=8.0.0-canary.774dcfc8e.0","@material/mwc-icon":"0.19.0-canary.89d27ca5.0","@material/mwc-menu":"0.19.0-canary.89d27ca5.0","@material/ripple":"=8.0.0-canary.774dcfc8e.0","@material/rtl":"=8.0.0-canary.774dcfc8e.0","@material/theme":"=8.0.0-canary.774dcfc8e.0","@material/typography":"=8.0.0-canary.774dcfc8e.0"},"publishConfig":{"access":"public"},"gitHead":"fbe5db689dbf4abb9f299c85581f7fb95f80ceae","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbe5db689dbf4abb9f299c85581f7fb95f80ceae/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.89d27ca5.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-0XzA1AtOlJCyHLX+vtLwzFWg/Dn8jj05TQJii/87t9KP7tn8yYXml/1CeeVh9KJ3h02qOkE1kZNxD0CMwkGpCQ==","shasum":"b277ba904b2e8561788af2192d8fb99c97061fb3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.89d27ca5.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfe8gHCRA9TVsSAnZWagAAC/8P/2nJbiZJFN0az/8PnMuL\nRljmpRN7sZE7KHCByOvi9Mz2EkLS3T30ZXT51ZnryNnrNgUxP9+yfBMpUJuI\nMD/ltYbQNNQA1okDHTPZJ9vSA46bwK+JmruYsaithc5A07n+2/hF6sQVKlvB\nNlS/Q/AKoe0WRA82I3mJNi756+CZ8Em0c8diGisr5KrjgaJdQFD5CSlegltZ\nTvQTpS+Fv0N1tPBp1+eLlxBOqN/8+1Z1YIFg3jlmuXsfvB0GxzUf4dXa6Dmd\nGYMX+dwTqx2kcK7wpGSW5VUMon1sGQxX830l/MUVTfmZSSd8GIFjppMqRAZa\nJOTSHAsbT+j8APjcQt7Fy6jMAg/2e36/nSG46aigHM+h3SHSzV4iAAzUHhu3\nkW5flnhVztYZdKgyWicuThb/8piuGlls3YMHRygTdMSNWScV+2fmRBpSz2ca\nFFlgy9MerFSF2Y8cTzgqSmVzAxIOZj4KaRGNpEw80R+54UjR2PhZu8dMjxtc\n0dIfnD+5IIL/3u5SE3ruTRnuZZ+tcteYPeGXNPm21Nq5HpkVizpJId4gEssX\nJciY5qL/dbqmlUy+fJxRYlO1vlbKw4g9E9Ic5j/wLlXpqzX7GjriVKz/QShe\nsq1F89qkuN7YnfBLBcQgSgN1g405w22qxN4K2qkM9LimDQvacmHNRie/JxSy\nQ3XC\r\n=JCan\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDu5J/OSC47AFyrW2FzNF69OCcVKy9VCs6OtzDzJNlJTQIgGyFd5dlQZgvApQOLB6in/LO8qrLEtOlUArmWkb5aDqg="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.89d27ca5.0_1601947655112_0.15568572251163015"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.9ef2e7c2.0":{"name":"@material/mwc-list","version":"0.19.0-canary.9ef2e7c2.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.774dcfc8e.0","@material/dom":"=8.0.0-canary.774dcfc8e.0","@material/list":"=8.0.0-canary.774dcfc8e.0","@material/mwc-base":"0.19.0-canary.9ef2e7c2.0","@material/mwc-checkbox":"0.19.0-canary.9ef2e7c2.0","@material/mwc-radio":"0.19.0-canary.9ef2e7c2.0","@material/mwc-ripple":"0.19.0-canary.9ef2e7c2.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.774dcfc8e.0","@material/feature-targeting":"=8.0.0-canary.774dcfc8e.0","@material/mwc-icon":"0.19.0-canary.9ef2e7c2.0","@material/mwc-menu":"0.19.0-canary.9ef2e7c2.0","@material/ripple":"=8.0.0-canary.774dcfc8e.0","@material/rtl":"=8.0.0-canary.774dcfc8e.0","@material/theme":"=8.0.0-canary.774dcfc8e.0","@material/typography":"=8.0.0-canary.774dcfc8e.0"},"publishConfig":{"access":"public"},"gitHead":"05ef0de8978ff84725428953056488d768d115b6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05ef0de8978ff84725428953056488d768d115b6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.9ef2e7c2.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-pk6GhGyBsscDrX/+bHuN00LvNQ09tu89kQzS0uEo6oVqXsLCSRek2w4nl0+V+2DrUofbOAE8q6R9WPbgl58Deg==","shasum":"4d860d8bdc6248e1637b5955cb52ce735e8e56b0","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.9ef2e7c2.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffQiBCRA9TVsSAnZWagAAczcP/3BsIaUs2T4vG/iZ47ZV\nD+O3ArgZG4/PNjQHGCr22hS4aN3dB51tXbsKgY0pD5iNhJ0ON06dKZPgIsD8\nILi1DfV5ickgtJ8amSKccS2gkejwo4v5tNhr/lRlascLIN/BNxpq5ImsCWfo\ntQHBABrQMfHJLzs17rWpcItcLbxB0Nc9L+lmnrvG5uRe/63QBI5bR9l+Jn+H\nu13g+/2LzW56fsLNJmfsTmQMgirFm84oUq4LoZcg7+j628rFQhp8l1kUHjjH\nsR5OkHoCVLiB55eyy6UXuaLkZbV3GAZqQIu5JtlAOvsAK8eK9CvPXjxaxagD\nueq6A92XRbwcbxac+KcE4dUsDxR8f4tVg8FMhgd1SJ6H4tPrmlxHFECUZqBZ\nmjotuE/W8ZhVpVIRAHGxAoR/T8cjvjsbC8rljFLNkkMQO9sVT+r93a57kGP8\nKpGmgGNCQ/wfOPW1U2VvXiYeVzZlrWayCIxp9tJMFufqVnsM/wZ4EIGUT9qn\npV9wSlPzE+KMs1SuCncJdgvvIS2gmzHhSeUeViNQR3LCmj+hFYDLxOq/Zhbg\nUK8Q2I9lFuyzbz7Pz+cNPtN/HJEvr+Sm1kz3FTmiMb8tK/ws2u0KRWj8VaY7\nX75NQwPpjiYs3+MNZJoOQ1LtepuPhN3Np5+dFOIbvauhEVIaX1CQj7Jni3ZY\nh2co\r\n=kUXE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEQwEHJU3jprlaDy0sQPJQ6MNrWQz+EG0BbMn5mlbJ4YAiAsnrVx1o2ej7Rvx9JFql8E9HDjMiudUKHC5QulmbKnSg=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.9ef2e7c2.0_1602029697577_0.7368712002013869"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0-canary.96c8bdc1.0":{"name":"@material/mwc-list","version":"0.19.0-canary.96c8bdc1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.774dcfc8e.0","@material/dom":"=8.0.0-canary.774dcfc8e.0","@material/list":"=8.0.0-canary.774dcfc8e.0","@material/mwc-base":"0.19.0-canary.96c8bdc1.0","@material/mwc-checkbox":"0.19.0-canary.96c8bdc1.0","@material/mwc-radio":"0.19.0-canary.96c8bdc1.0","@material/mwc-ripple":"0.19.0-canary.96c8bdc1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.774dcfc8e.0","@material/feature-targeting":"=8.0.0-canary.774dcfc8e.0","@material/mwc-icon":"0.19.0-canary.96c8bdc1.0","@material/mwc-menu":"0.19.0-canary.96c8bdc1.0","@material/ripple":"=8.0.0-canary.774dcfc8e.0","@material/rtl":"=8.0.0-canary.774dcfc8e.0","@material/theme":"=8.0.0-canary.774dcfc8e.0","@material/typography":"=8.0.0-canary.774dcfc8e.0"},"publishConfig":{"access":"public"},"gitHead":"1107015eb30f3673820101dee6e42cd62841721c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1107015eb30f3673820101dee6e42cd62841721c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.19.0-canary.96c8bdc1.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-fbSkadphh7jJMm2iaA2LzzxYB9/7nCdef1TjrbW7MH9f62dYFhwu3OzSMosOgPLQ3Usu64Zv4RZWcuP7X/x5rA==","shasum":"14214ca1a5832c119a1113b9f7482abf2ddd8499","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0-canary.96c8bdc1.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffiAvCRA9TVsSAnZWagAAg0IP/2fPrtJT4BQhvK2CxuWJ\nTqNrsYSmVm6jUSvswqVhhUFWtAXCdAQ2R4FEG6L23yv8t9Xp3UudkBt/91hH\nJCD/3oZVcyrsFUqSBmcAefqxFuamaUc0oJfYUv713iNFQjk/8fdmIRfTniMX\nhqL7Hr5Thwk43bVN1z5AIxMq7djbq26g4LwYC8Tmet21gIzmHH6xhPKajRc1\n5J1oz1lc7YTLSmz9UrKxqLdJDyftVeRjRLw1gpUZZUU9WL1XYCRa+tVosK5z\n2uwy5fz1OxMQFfRMdFDW62RApX8JsxLePgYBRSm0Yjxk7PT8CNgY5kGivgQo\nveLo/v2G1Cs2YFGatA1biCiAcHRlsam4gTFZ875CCkcupS17axc1BUTKL7QW\n85AHzx13GiDU/avxQdHFBrcF5pyawSyu/CBj9LkKdo6TxUhP4GTbq7x6BK2C\n4W2b+Uh813B1K81S6mQGhswAqWvM7L4jFgZftz1mKNgPZ3cOK8EtZonAVhgN\ng26/MJeFBUf7ZEyntJxhbZ1RVvWvEuberoLAz/GfBUllXT46OyWRF5MyAq77\nYENCrZH8/4OGptdI230KPIXAQuAr3pqfv0fObWLfF0bvEgCWW4vtDIBtql8j\naykGoJmTAQlzXCziAEiBG1V04vBMsxxOMTeSkNNFG2la4AQurrSTSedbPBhR\nAWaJ\r\n=yqUK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGqJOCXJH+RV2xBQIKrYGDTRzByNWppebdZjljjKoly2AiB0zlyXRzYKGWome9vbc3DyobF/NmhI6jwCEWyDcH5tDw=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0-canary.96c8bdc1.0_1602101294879_0.38355143093056676"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.6c21f034.0":{"name":"@material/mwc-list","version":"0.20.0-canary.6c21f034.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.774dcfc8e.0","@material/dom":"=8.0.0-canary.774dcfc8e.0","@material/list":"=8.0.0-canary.774dcfc8e.0","@material/mwc-base":"0.20.0-canary.6c21f034.0","@material/mwc-checkbox":"0.20.0-canary.6c21f034.0","@material/mwc-radio":"0.20.0-canary.6c21f034.0","@material/mwc-ripple":"0.20.0-canary.6c21f034.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.774dcfc8e.0","@material/feature-targeting":"=8.0.0-canary.774dcfc8e.0","@material/mwc-icon":"0.20.0-canary.6c21f034.0","@material/mwc-menu":"0.20.0-canary.6c21f034.0","@material/ripple":"=8.0.0-canary.774dcfc8e.0","@material/rtl":"=8.0.0-canary.774dcfc8e.0","@material/theme":"=8.0.0-canary.774dcfc8e.0","@material/typography":"=8.0.0-canary.774dcfc8e.0"},"publishConfig":{"access":"public"},"gitHead":"367e1d2c78522b5c85dbc2693548d691c8b84d59","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/367e1d2c78522b5c85dbc2693548d691c8b84d59/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.6c21f034.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-kyr3WOIWbhc1n+J1DQj0sl/p8FcHKStYjmvZYtsl7kQqrE5XeLyz5iIrRDuuE9DKXIwa2nRP9CKCbGSXrn3nHg==","shasum":"12ea27b04694f4e088008c8f17c30caaba47af3a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.6c21f034.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffkGnCRA9TVsSAnZWagAAp2gP+gMBBhqv482W3o0gl25j\npqm5NFvTHG5vyazBhm+idj+rVFG2brCeJ3gaAK5Y8oOgnipHKyUjivbe2BLX\nAS1QFvvVLYGmu4HtfiPlQY7Hy9mNRyIwk7a9wPhMZlycZ58aBsiTH4HJptO+\nnWmj56B3hoMmRJsa8+ap2XUf1TLZKV4klBbfRa9cTJZoYycqkd/WkSKNvHbr\nhd5hhRlEyAjPO/c32vZ8TYRe9V1ZyLGp/20WcPyaGosO0OdsPR+z4OpYaHcK\nqjyP/mVV+0z1ue1m/7GZRzZK+mm6sPJGdt4MDJ0+jm+4z42WbjR0lUY9/nom\n1F550sgjtTetGyvxvft9RhvtmjCIerSH1yMdKB5HjFgRFF8lp6a2LM0rjKkG\n5hWxgsrLnoc3src4Bak5qCkxvE9b03/NzjIJWB7QPChRBG9wlftAYLFF3ntb\naQWpGA/dygvuVf5888q1ZmYQ5kMyT4tU+9FjXUSL/HKybLcFfZXM6xu3Kewk\n3iJxvHhfUnTXMiWyoR1Gwx4289M+fgrk6Q4VfmD3XgjcStMPaTs8ziVXZ2cd\nNggm8yGjua6ZZEEc9TQTIA70D2tSN/wPwKMoI4M6M9Vl6377oaOPW7aJBV1w\nbbw9tzV8LxMg0wAZvlz66Do9dB26NR9zlDmTRDAA4eqtN2rwgitwd3KZ5r/9\nXkyp\r\n=LNWo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB/7cY5RuNQQZy4/7Z4TEAl59tq+6Ky53VqHe5t8E6NGAiEA5HQev4ZsaT4mzlQqyvURkjV5gZFXXVPUNCNmcnWtFBE="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.6c21f034.0_1602109863314_0.673949575789929"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.0":{"name":"@material/mwc-list","version":"0.19.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.774dcfc8e.0","@material/dom":"=8.0.0-canary.774dcfc8e.0","@material/list":"=8.0.0-canary.774dcfc8e.0","@material/mwc-base":"^0.19.0","@material/mwc-checkbox":"^0.19.0","@material/mwc-radio":"^0.19.0","@material/mwc-ripple":"^0.19.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.774dcfc8e.0","@material/feature-targeting":"=8.0.0-canary.774dcfc8e.0","@material/mwc-icon":"^0.19.0","@material/mwc-menu":"^0.19.0","@material/ripple":"=8.0.0-canary.774dcfc8e.0","@material/rtl":"=8.0.0-canary.774dcfc8e.0","@material/theme":"=8.0.0-canary.774dcfc8e.0","@material/typography":"=8.0.0-canary.774dcfc8e.0"},"publishConfig":{"access":"public"},"gitHead":"6c21f03466ddd0381aa030eeb2fd8f9615a3ed73","_id":"@material/mwc-list@0.19.0","_nodeVersion":"13.8.0","_npmVersion":"lerna/3.20.2/node@v13.8.0+x64 (darwin)","dist":{"integrity":"sha512-/ps5KNXmkhjh6pQ61bo04WFQ54ciGG+mDG6HcU79infjpkjAUpMJa9tJ59dA/+kPThefQYSoSvEow8dPG99kwQ==","shasum":"9cd854c845183cff218ba6860284b82ae3711cd7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.0.tgz","fileCount":45,"unpackedSize":238890,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJffkI6CRA9TVsSAnZWagAAU/cP/1Du50kimpML8S3hIbCR\nVjYWpSPJDoQlxv1At0ZbJqa/gDSkGaNknuBKfv9ZfqJ5pRM7CmXsOGzxqmN1\nRg9sO7FpnNW73X1y2G3VFcX1pgxeBOhIL+gwL2WLweJLHlqSB0uC6tHyyoFo\nQAeFC+u5DFndI2gokaw66xoFnEaowrqvukO8mMjILXQrzKp6jcxmkl9VeCNO\n9khIMp33yptoqDU6L3/WnnO/L4ppm3bK84yDhMNwmrk0hDsOwW5VvAtEiSjY\nTNYLJDX6BQVPWfmhPYgOKV0vJooF+fUF0QwF7e4XXYxCuxYHEMVkX9T4rJ5f\nwKX4GTKkUtjbFcJqrN9nPQ2/XiKVJ42O3IM++ObESnhyUONZmgtbk48igxhF\n9Fy7TCSoippJNsOs135MUuZDV/GZgym+Y/eMVs5g4iId8/R6WNzdP01Fl8uf\nnp0zmBNy3HXqEvoTyv6kJhPORjbiKAqhRiBD9yirEyHqgNSRKz25MnjxJ2pc\nQ3FN13w19XkFJXIfiaVPA25fuxwn7lXsqMhHyai7RO2wS1eyUQdNgATEFo66\nXjZ11aMF2ku1XUFFR4eit/LzvyVymAX3KukBiRjrTYjaiCkRXEGplp7chJSA\nTfqK1eSsRfPme6hwbsRdWlE5aAGnJxcQpZcQZExaxWKe1JW3+njLBVpsobH0\nrkgd\r\n=Z2A/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIChTn4DWSePYhZaEatmjCWOeGef1cci7/aVzGrrN96PvAiB3upGHBTHaDSHd7FgfGLSruczYkbkfsd747sQ8l+6WLA=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.0_1602110009567_0.6439996038154612"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.1f026aaa.0":{"name":"@material/mwc-list","version":"0.20.0-canary.1f026aaa.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.774dcfc8e.0","@material/dom":"=8.0.0-canary.774dcfc8e.0","@material/list":"=8.0.0-canary.774dcfc8e.0","@material/mwc-base":"0.20.0-canary.1f026aaa.0","@material/mwc-checkbox":"0.20.0-canary.1f026aaa.0","@material/mwc-radio":"0.20.0-canary.1f026aaa.0","@material/mwc-ripple":"0.20.0-canary.1f026aaa.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.774dcfc8e.0","@material/feature-targeting":"=8.0.0-canary.774dcfc8e.0","@material/mwc-icon":"0.20.0-canary.1f026aaa.0","@material/mwc-menu":"0.20.0-canary.1f026aaa.0","@material/ripple":"=8.0.0-canary.774dcfc8e.0","@material/rtl":"=8.0.0-canary.774dcfc8e.0","@material/theme":"=8.0.0-canary.774dcfc8e.0","@material/typography":"=8.0.0-canary.774dcfc8e.0"},"publishConfig":{"access":"public"},"gitHead":"3082455321637675854584edbbfeafa95d95dd1c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3082455321637675854584edbbfeafa95d95dd1c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.1f026aaa.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-jZnIREMW3pJKNjHAaCAY/wtPgfaVqo6S3id3NDEdZQtHhRdasByWSc/Rtlt7eQJ9WLu2hkvn8D7f+sVlynn5xQ==","shasum":"3e0d405dfd48a4ec71a45d0c38d0c6dc7d3dedaf","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.1f026aaa.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJff5iXCRA9TVsSAnZWagAATxYP/jM99jdNPgxnxLdiIWRv\nXUMysTx08OlIsZEqNYy9dEfP66FfJEofIf3nUkBVYt97fZJnV5ECv0epxub9\n8dyMP+h4IvW1lOsR+RAG1QrWhGrT2+e9nNWZBiy9z9fbymqJPCU0lDif8QIb\n4+2xlQnB7G9qwB7jcj3DE2khzPd4c0OdL4wnw30gofL7qw9mZWFr62JkMtZM\np9YLcfSUKEP3zfuJn8+3i3qAOOzsvcZTw1qn3hszCymPG8ioj8VxC1w6/Seq\nn1nV7wk9/ykT5x5i0UMOeptctCTiE74YMJo3jQT6wVN/DNGs6sFHWD7DKiHt\nL4LngdzGpAwVf6H1FjEnGGGPV889lKvW2XdlufBUfs7Apolk3Y+mh86XiZNW\nbTqh3Hej0JKkchZNwBnmwhZo8kop5aKHkHA00XGtiOqb1WPJSkDO/2VOFsQk\ntgPSPcBNb0GvFUR8ZM0QqJsf3UPum1PGt88W1z27qYjg2ocDr9D7srIf4Vsk\nsQKZ+NA18YLUzYrwIfGwAEbF61vccauRz3AkOkfWGVLDrPxRkCoB8t/epIUC\n9qZJyUZ++DKyB3bIWWzxN3+AQgZGigO88fqFCv3v8lKRRH2cCRxeEZGStP3g\n5PQXdhgAINsMxXk2/UABupGCm05HIase71/3mtmP2PzgfPPgu9rT6laWxK6X\nNq3O\r\n=1ncV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHeMcAn1TSfeHLxth686kuLFebQ0sOnn5NaU5QuRqAvgIhAPusOcnL7V4mFDqiIAO65po4mXgcg+Hk3vYdb/w/E+ww"}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.1f026aaa.0_1602197654696_0.7156103176260051"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.19.1":{"name":"@material/mwc-list","version":"0.19.1","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.774dcfc8e.0","@material/dom":"=8.0.0-canary.774dcfc8e.0","@material/list":"=8.0.0-canary.774dcfc8e.0","@material/mwc-base":"^0.19.1","@material/mwc-checkbox":"^0.19.1","@material/mwc-radio":"^0.19.1","@material/mwc-ripple":"^0.19.1","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.774dcfc8e.0","@material/feature-targeting":"=8.0.0-canary.774dcfc8e.0","@material/mwc-icon":"^0.19.1","@material/mwc-menu":"^0.19.1","@material/ripple":"=8.0.0-canary.774dcfc8e.0","@material/rtl":"=8.0.0-canary.774dcfc8e.0","@material/theme":"=8.0.0-canary.774dcfc8e.0","@material/typography":"=8.0.0-canary.774dcfc8e.0"},"publishConfig":{"access":"public"},"gitHead":"5f6894b191aacdb7da61e0e9f91bae96169fb190","_id":"@material/mwc-list@0.19.1","_nodeVersion":"13.8.0","_npmVersion":"lerna/3.20.2/node@v13.8.0+x64 (darwin)","dist":{"integrity":"sha512-s/vRvsWI32Sx67dj1f1MNJJ6ZQc796BLbTUu6aKGqT21p5BUeS4VdOzbCALqQILvVpggpm71PFeFdV62cR5tWQ==","shasum":"77dc53a4ab3334832ec77ef60ca8a4fcc01bd74f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.19.1.tgz","fileCount":45,"unpackedSize":238890,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJff5tjCRA9TVsSAnZWagAApNMP/3L3TJOKJr7dnvesrALl\n3vWc/LKqlBQZ6fLN4NSRcUv7s5w19XHsGsoEULw+Zmx/osBtrnes1frIWPDd\nhRg/MbGO/le9yPas2EDBSPTOR6CK+E8mZiX/0ZTxdE6zkJKbo6QVxXkNdJuD\n6C2XWknP/dcxMUhpthbUuO9zP2mvoG7FFZlNt84LYag/0Sfh0iCYRje5TIiZ\n2E/X/ZYfdoXW34IShAe/kmkyPbMzPdXB8QBrIsQ3Br5v3zUn2Le0vcv6s9PM\ndk5O0HLC19qLjcB4arzyBch+MGMXeWfGzkNrmgb0YNGBl8CtYjV1m8NuT2Gp\nKFK07ZGlr/cIkJq27RZ/PSSveZH4A28ZLSGT7gWPCabs++ALSAxqqZ9qsKlk\nyfrTuvgLcB7m6f7GJWPBWwUp13asKr1rEOymWFIlKzwzVIQlsS951xUQermo\neMhCuEhsy2YU+gkZEZtxBXLf9XX7yPIWtde/LZWWQlvryssQtx8iaZdY42+t\n7pH32InfTbXv/WV1RezOib3kNTU1CNFQme6whQ/En2dX4ugqFrvjYK4Pc46/\nfLABIyimrrN8RHYfTHQyKFrC/+cA+rsS2kn9yG0P10aB0aUYfW8O067EmiEE\nXsooiEdTlIjteyr5WLzg+2DanAmmWZ5J0O4AmIZnIFmZUogq0KKti0vWmo78\nXMMI\r\n=/ikn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAlJC08/89ELGIxVUqODQA3T9iBnqM/pbkYw1wGF0b2rAiANUyf1SV8AfpT69DJlPMIwKa2F3J7CaDLQ1R08A30g6Q=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.19.1_1602198370624_0.20267489320043697"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.5f6894b1.0":{"name":"@material/mwc-list","version":"0.20.0-canary.5f6894b1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.774dcfc8e.0","@material/dom":"=8.0.0-canary.774dcfc8e.0","@material/list":"=8.0.0-canary.774dcfc8e.0","@material/mwc-base":"0.20.0-canary.5f6894b1.0","@material/mwc-checkbox":"0.20.0-canary.5f6894b1.0","@material/mwc-radio":"0.20.0-canary.5f6894b1.0","@material/mwc-ripple":"0.20.0-canary.5f6894b1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.774dcfc8e.0","@material/feature-targeting":"=8.0.0-canary.774dcfc8e.0","@material/mwc-icon":"0.20.0-canary.5f6894b1.0","@material/mwc-menu":"0.20.0-canary.5f6894b1.0","@material/ripple":"=8.0.0-canary.774dcfc8e.0","@material/rtl":"=8.0.0-canary.774dcfc8e.0","@material/theme":"=8.0.0-canary.774dcfc8e.0","@material/typography":"=8.0.0-canary.774dcfc8e.0"},"publishConfig":{"access":"public"},"gitHead":"63718fb08d28bef1d0a9044bb2ae8026b49541a6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/63718fb08d28bef1d0a9044bb2ae8026b49541a6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.5f6894b1.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-yM6rKyNMv/pm/Djl2qd38ABSuCXeVG27FsNFqqI2miIyLDeh7XxUSBH3iwR+AJdrSfUqf+8lw3Rmb8T1jMY/KA==","shasum":"d63ec2fc663c0774ff3cfd41edcbdb0254da5bf6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.5f6894b1.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJff5vECRA9TVsSAnZWagAA9KsQAKBqL3sP6bo6K+97/pds\n4pyfaJpDVmI2eaSsOf2OtiB/ns+/qDCmY1WmpqhHTLYEKLUgCym2QGliD1vC\na8uTkEwHySfaEB8c+TVZ8zwm+aI6KAwiHBIi3tcWW8x7xi+ZfZfCOmw+yfLh\nCj1FMZ2WM++GyYP8ccWC5S3iuRxzLLOCfMpyH5VXPeLgzg0qHoqws42ZX+UG\nsxUQx6jcCc54VJ3588tPzlSdSR9bGMiqnrtnBLuXEp/DEwRNKo6VanNFOZyU\nVrBx0QAmcf89XEJdrKpY70HlxHmDEKRIWB6DDK3ABz6j4Hq93hSh0Ge5ZBag\nb4FcoYaeecGHgLDPi2G3Aucn3XLycfWpllApkTXoXJALviYy71lgQU8H1DrE\nEBFfMUUEz5B6AfRn351+vhXYS4EoCJ4Ilq9lwf93lpfIGVjrxAI6fsDyHSFY\nIZGvhenhLpx+KR1xO4fgpoTSNnQplkElCX42WBqGZQz74iiXPbIbZqm16Zaw\nSGgWFLvA3fKAZMtuRH8xgC5RiA+28Z2dEBJPx1UQQRuBEoVZgGld4X5GGIx5\n6qbB2rDavRBjhQBOaAFk1IdfRFcdbc4XivK9upkXEN2llB+mdrKB8WJQhYDL\nVf3KP7st9eIVJyv3TJ8SxL/to73KZkjHFxVt6m8F/4fJUoAuFWCr9pJU3vWy\nW12I\r\n=2Ar9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrJXy2hZ6y4wDLig/mF5YuX305EUsXTorhvFWqwbzkRQIgOqrn4X/QuO72xdgehpwuNvfEaBsRmQ6ZzR4LRBf2ZDU="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.5f6894b1.0_1602198467685_0.9179994629914945"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.f6260d06.0":{"name":"@material/mwc-list","version":"0.20.0-canary.f6260d06.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.8a39352c8.0","@material/dom":"=8.0.0-canary.8a39352c8.0","@material/list":"=8.0.0-canary.8a39352c8.0","@material/mwc-base":"0.20.0-canary.f6260d06.0","@material/mwc-checkbox":"0.20.0-canary.f6260d06.0","@material/mwc-radio":"0.20.0-canary.f6260d06.0","@material/mwc-ripple":"0.20.0-canary.f6260d06.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.8a39352c8.0","@material/feature-targeting":"=8.0.0-canary.8a39352c8.0","@material/mwc-icon":"0.20.0-canary.f6260d06.0","@material/mwc-menu":"0.20.0-canary.f6260d06.0","@material/ripple":"=8.0.0-canary.8a39352c8.0","@material/rtl":"=8.0.0-canary.8a39352c8.0","@material/theme":"=8.0.0-canary.8a39352c8.0","@material/typography":"=8.0.0-canary.8a39352c8.0"},"publishConfig":{"access":"public"},"gitHead":"d0f921476509811c1109c8805b0eaf1e5cbb3218","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d0f921476509811c1109c8805b0eaf1e5cbb3218/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.f6260d06.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-XswUVrhHkuuC+hVrjKidbu7YY2V+rA6OnM+gL9BgBzfHJ8nNHA23NwRqJHX6jPQKdUHO2EE2Kf6k7RE+9GvVTA==","shasum":"c402181612fb2d2110703276b527ed8504016797","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.f6260d06.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhNoJCRA9TVsSAnZWagAAp1MP/idwEoh7r7MYJ74a8tRv\nRTaEAF6YqZOb7/MrntVwwFPw5AV3Q2EK79V6DpeshBE4RVXyPbXkU9lbKQLS\n8WPOEl5r+45TVgjZto+sXe5n/B2VODZ+PipVgauWsT1aFKKJvEdz63plQhUH\n5UCnnE490hJ+K24xVEzEO9H1ZpDXbK0J6/sTrAhk7MAXWgENW00j0ZHni4cQ\ngjGkjbJv2+R9G7NhDxzNpZ8PuHtrcRAFFVqdWnSgadXa6CllU/oze5PGYJte\nPfUFV7BINwt2567ifd/FPQdvRdOIOHbl6blDkZTUu+cYXqB2LwZG2n+SsVFk\nwIXdes+pYYpo57CvGeb5NzROfXmX4Xhm5uXN87exslfqHJExggObnK0MVUrn\nvnBPnFdOX3mf4Q0t47S3ff4qL0lTxcDXILU9zaZ+cP766C0mCHog8TBv9GMZ\nRk/7zed9rx08el8NJqZkjp/l3hMC7gL0aYHetyf0s5L6n9YRABt84ylwedJ/\nRhf6yzCJOc4fqUheIIwvcdY4ji80RwzD9yfUdzri0lQ5TG65I+JVwx1YaBRU\noK1a6LTFvgkMHqZqqp3usu4y49q25CZZuVJCT4/ehDFb1r1ymRmwRGpgjmNu\ne12ZO6oRZTQ0iENNkGmWPEYI7Kr3S5b3UXYCMq+wddD2mXFC8Z5+OQUJiudC\nNgrC\r\n=Cu5+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmsjrOdwT4dnUzl03wRznFi7Hfa9j7xZNTvXrZQrK5sAIhAMK3to27/l6PmzxzYjuNDY9Q6godeqN1JrUOUeSuOgaW"}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.f6260d06.0_1602542088864_0.08123742990504268"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.2d1b08aa.0":{"name":"@material/mwc-list","version":"0.20.0-canary.2d1b08aa.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.8a39352c8.0","@material/dom":"=8.0.0-canary.8a39352c8.0","@material/list":"=8.0.0-canary.8a39352c8.0","@material/mwc-base":"0.20.0-canary.2d1b08aa.0","@material/mwc-checkbox":"0.20.0-canary.2d1b08aa.0","@material/mwc-radio":"0.20.0-canary.2d1b08aa.0","@material/mwc-ripple":"0.20.0-canary.2d1b08aa.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.8a39352c8.0","@material/feature-targeting":"=8.0.0-canary.8a39352c8.0","@material/mwc-icon":"0.20.0-canary.2d1b08aa.0","@material/mwc-menu":"0.20.0-canary.2d1b08aa.0","@material/ripple":"=8.0.0-canary.8a39352c8.0","@material/rtl":"=8.0.0-canary.8a39352c8.0","@material/theme":"=8.0.0-canary.8a39352c8.0","@material/typography":"=8.0.0-canary.8a39352c8.0"},"publishConfig":{"access":"public"},"gitHead":"ecded3a50181254f2caf9e2d7049466e24129104","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecded3a50181254f2caf9e2d7049466e24129104/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.2d1b08aa.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-82HZWA7JV6D1z3/i8fuH4Ni+ItGdxBjPU2cRujr2Anm3fVhkrr6C0Do2AQ0SunF1P9UjAJsL5FxuptJh36QuPQ==","shasum":"c71a5d6382fbc80a5345082dfaa88bd95a3da872","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.2d1b08aa.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhf6ICRA9TVsSAnZWagAAoJAP/1xaKlfs0rflJsCGiBIo\nipEYhq3lqhfkVCJXnPclv9Urdxn5HK4ZMsFk7r+aga8pQhxnUEkU4HVobhZx\nNdeLUKXDSi3Hr86p/duzhHHsW3HGE7yw6yBGEQNZovJ3X8qwoik/EBtpjvJy\nmWr/byNv2JDGGNUFwuGjEf+cLGKznB1xbJCLOwgNaHOMfpSYBRjtwOBv/l64\nOran64imMxBnRH+sP9hN1o/1hadvx6Zi3yjwMZIhU2n/0dje+x8mTNYwhvWp\nAz5Wck50RYJdTmuGOIdCXTJzGhHSlP1IWxIxcHIEiAytktQ2kQDP2HQbfK+s\nlYVZV13D2SR4qPGdVOUrUA9I880uRbvWHYeceXqXnARhESsfKYuMj8I0g4xh\nqjaUl3G0ekxvJtdLQRqtupSeMihJ8s7RgyaGCgqX/tG3r8wixb9iziMLrKze\n8OSZ3afU/bph7NdkoGgyLKrAWHH39x3ODl2xPITlu5xW5g7ES65+VbBQbIFB\ncykycGlCVOsRdAwDYiJIyVAbHEAL5zbozqrBcRU6dspq32h7p+nlq4Yj0le3\nANPWxQYi0zToLCVRcqc45G3tIKRl9Vc2pa2HZ5ulyGnjfYTzjzDd/cRzlZRI\noFog5WU5xUxstJYzseyk7a2/4vMrfkrnB+ArVD6OWJtCcMzLpmJ3PklGEd/q\nW4qI\r\n=6P1f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHrzcFPHxatAC0yWhH6OE4n2ztU+rj2ATAVHM6fuAP3jAiEA78ymeFm3jRbUMMvkoL2PflkFh0BgfXeDdxIbXI9vSZw="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.2d1b08aa.0_1602616968122_0.26446343042731324"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.5bd58844.0":{"name":"@material/mwc-list","version":"0.20.0-canary.5bd58844.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.790ca85fd.0","@material/dom":"=8.0.0-canary.790ca85fd.0","@material/list":"=8.0.0-canary.790ca85fd.0","@material/mwc-base":"0.20.0-canary.5bd58844.0","@material/mwc-checkbox":"0.20.0-canary.5bd58844.0","@material/mwc-radio":"0.20.0-canary.5bd58844.0","@material/mwc-ripple":"0.20.0-canary.5bd58844.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.790ca85fd.0","@material/feature-targeting":"=8.0.0-canary.790ca85fd.0","@material/mwc-icon":"0.20.0-canary.5bd58844.0","@material/mwc-menu":"0.20.0-canary.5bd58844.0","@material/ripple":"=8.0.0-canary.790ca85fd.0","@material/rtl":"=8.0.0-canary.790ca85fd.0","@material/theme":"=8.0.0-canary.790ca85fd.0","@material/typography":"=8.0.0-canary.790ca85fd.0"},"publishConfig":{"access":"public"},"gitHead":"f577a3de2e8463259c7e4a5834fb1873a4bced9c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f577a3de2e8463259c7e4a5834fb1873a4bced9c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.5bd58844.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-Yu+IZZ5t5OL34wtDYvMoF49wePHmhrFSPq7grHuJcTU2iS4A31VwJXQJVmvk9sWJKXMJpBnJMruC+P6UAadlcw==","shasum":"58078ddf31f733a61342817a5026ac17ee430f0a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.5bd58844.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfhjxtCRA9TVsSAnZWagAAWTYP/2sMt8/w5NvYW68eYaEp\n56hNz94fk89YDiC7nSo3JFsxlyq936k1MZVmzUvsvvAQHPgy04D5a3g/FfEU\ntc3pbO8KYa06/cXXZJQeKh2SvyqRfFcOlqCvYI8AZ3vxd1tZoAuLuArqCEXV\nx+y1SsrfngZsI18b5t7eL+nDj45833fFPyVt/+/07fxZ1bldKsMtFmxFXw1H\n7YOq8Np+G/v2weo8DXPqTLdezo1/JxAK8iGcRw6vn+ZIeG3pjcl7dFwn145W\nixBVjRE/S9+OgA2cDSMhwt71cmFF3iAEIJWiB1IWZPzRJWHxS+vGfdb8c/dL\ndRGSQcMX/A9X9XSRUGpbAorUCrw+3bUgVQnJu1BplPfTeKXu099RLXvT8v4h\nQ2sc3m1mXP0EsoWicKYlnxSTDVBebwzhCD2kO0DtougqVyDG2huySOwWEWEa\n5q7XeoJToNLqvY5Bsr23bgajUlqOcQMFnAdmeIF8RiW7I9tAyStV0uNJrS+E\nta9/UTmALAJk8R2fdohTx5734FIp5gowH9DlA5N8R1doM4xfvbCmMoZpmrDN\nsCzJGajIQDse8S2uMCdPRko1OwbLq5YGJfMHTgHXBtUItP6Aiw1h6zVeYMKq\nWfk3NkBxszqqkrJ1q2uG6190uNtKani5qgH84oIgUUvDI2hVRcehEvY29m8e\nFqwL\r\n=537r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWxI8NDvnRvhRfhfD5SgfT113EYab2OFTdV4KosPHxpgIhAJClecOVHAdT2+nSFR5eCWKa/6RntCirnQngMIxHUWWn"}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.5bd58844.0_1602632812680_0.0010600881826847708"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.bc846b29.0":{"name":"@material/mwc-list","version":"0.20.0-canary.bc846b29.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.c71ebfa02.0","@material/dom":"=8.0.0-canary.c71ebfa02.0","@material/list":"=8.0.0-canary.c71ebfa02.0","@material/mwc-base":"0.20.0-canary.bc846b29.0","@material/mwc-checkbox":"0.20.0-canary.bc846b29.0","@material/mwc-radio":"0.20.0-canary.bc846b29.0","@material/mwc-ripple":"0.20.0-canary.bc846b29.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.c71ebfa02.0","@material/feature-targeting":"=8.0.0-canary.c71ebfa02.0","@material/mwc-icon":"0.20.0-canary.bc846b29.0","@material/mwc-menu":"0.20.0-canary.bc846b29.0","@material/ripple":"=8.0.0-canary.c71ebfa02.0","@material/rtl":"=8.0.0-canary.c71ebfa02.0","@material/theme":"=8.0.0-canary.c71ebfa02.0","@material/typography":"=8.0.0-canary.c71ebfa02.0"},"publishConfig":{"access":"public"},"gitHead":"08ef67ebd3aef2e1a1cfc139021dd528a4275f6c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/08ef67ebd3aef2e1a1cfc139021dd528a4275f6c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.bc846b29.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-8IBcHSFwmCFD1E7dOdMzWg+hrcVR75hkl1ptnWUtnvVSojc41gF9uL9IQdjVvJhyka3gqOckyLCR4cmuFLyPrg==","shasum":"867c52391b65366666a182dd98db1418549c608e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.bc846b29.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfh0B4CRA9TVsSAnZWagAAcLsQAJZN+cmBeyBg54AjQKpB\nxQMABcP8fmb4iXIXNgU+wIsLeq3qbs/FRGOVnhnoRuVm0863G9/LGVdX+tYl\nZpNzY5LhGFrmM8SQ9diRBDmRuD676DQa8MoEgHDnTvYLGZBTnwuk/amwnL4M\nDLHF8nYWGIGZvUNwvDtHKinp/lo7WpOHm58alx+7AxwaKbeQ9lHPgCmvOY4Z\nZtDBKpCi2Y6Ra3vYDRDTPlvWtgUs88ybzUUoKTdUNPA7wE5xmUkFM8YkE6z6\nt0D8T5nzqaFvC4I8mauggJzzdw8sgAip9pLpi9pu3l53YNtD7Cvp+OwWegOS\nXVzhmb0kUaYUC6qWOHREk+LGGwcHBLPOX5yNC2oqSFuqKgdf7em5skizhFiV\nLM6kPZcJe+/kLm9N8N5xkA532W8at6rX3Le9m6gj8wMMOdYEiWKAsHcl0Ww+\n6ie979ARjMPip6rWyTuQMrdp8Um6poX2tvh96+VNpDIrZjc+LUcQiCGSa2Mn\nLXqFg9lCW1ec/mcMJOLvrfKPpfJ30/GQdDUaKQTB++jYjf1908ss+PdwF1hL\n2Iq1QnxmoF3xraPDWm1uBQO2Xrx+heSIl4oHWjHR+qGRlJBBakEiUKB8pMm1\nRn3U1edih8jsSKBLXXOV/cZhFlHMaxvvbfDMiJMpab9V2kYMkmvwcPMOls3P\nwISy\r\n=b9Dp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICyu6XAy0zHmcEIuPKJ/Ym+58S/cPDTedbW6C2qfC1gVAiEAuyvOb1ftIUXg9oQcGxx2oyDcAHYTIfQ6JMR0K7psEHw="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.bc846b29.0_1602699384300_0.9746312365478873"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.3280b686.0":{"name":"@material/mwc-list","version":"0.20.0-canary.3280b686.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.c71ebfa02.0","@material/dom":"=8.0.0-canary.c71ebfa02.0","@material/list":"=8.0.0-canary.c71ebfa02.0","@material/mwc-base":"0.20.0-canary.3280b686.0","@material/mwc-checkbox":"0.20.0-canary.3280b686.0","@material/mwc-radio":"0.20.0-canary.3280b686.0","@material/mwc-ripple":"0.20.0-canary.3280b686.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.c71ebfa02.0","@material/feature-targeting":"=8.0.0-canary.c71ebfa02.0","@material/mwc-icon":"0.20.0-canary.3280b686.0","@material/mwc-menu":"0.20.0-canary.3280b686.0","@material/ripple":"=8.0.0-canary.c71ebfa02.0","@material/rtl":"=8.0.0-canary.c71ebfa02.0","@material/theme":"=8.0.0-canary.c71ebfa02.0","@material/typography":"=8.0.0-canary.c71ebfa02.0"},"publishConfig":{"access":"public"},"gitHead":"b97a59c2fac8d04478f24f297f15106622007735","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b97a59c2fac8d04478f24f297f15106622007735/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.3280b686.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-AVe6cIGTj5ipWNrky3bWTkYyy3fCk2ljyUqezYiwcIuVpwNTQM+Cu7nY0MV/YnHMHwIh18SN8scUlXuWxUL9ng==","shasum":"9ca30492dc024dff6984270e8419e1850f626b35","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.3280b686.0.tgz","fileCount":45,"unpackedSize":239010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiOOsCRA9TVsSAnZWagAACfQP/10nSRzWcNw+KTc1j7j3\nHs517FAjNJiwKXoTcD/wDZFgVeJKsp4Ge/8jzAaH34mguEC7mfaZrSyArLqX\naKX0dwXv5HGnTmuOPraKCQOZGJptzH3ge92puCBM0UrTMadSok6iOOp3LSYh\nYodbOL+YSINBfMDxCg7C/9Hl/iiDdyZrx1ks6HIlF5Mams+fb94EJWTjg3/8\nv32P18bwyz6qdbQnjAt78OzJhP16sCLM40HU2cFNa++V3mCCAQQ8bNpEbfPX\n0CARI6ss49A+A6xOvBDGckuJyHNStQ+G8KJ9xI1dL0rPmJF/9IQYACRHSA5s\nPcFmfkgazjrIkLOwGaM6DVKNLSzz1GO1wPWcqotXdImc+QkBxrdPYmSjNI8U\n4d0DN4ye69d9xlVttXdSGEtaQEkqlK/OirMA3zy9LhCe+SznHUhnx80ocVG2\n7sn1ROmkdlk2kBxSNIr3H2+DTjccNXONEaVYn+TsNUSkh7/eyTaJ8tWppypT\nwmDM88P2xfLZgnxR6x9qqRS1GMAkICedLOW5LzQzw7m2oswHhdKaxlhl8OcH\n6VWK6uMft+RojVX0UNq4Xiu15/MrqbWho/SBRmjIE17yHEzA2PHasPX5iXfD\nBtblRLboIRkXAyaLtmT+/8dMwEVnkHObux6G3RuJBZOZ6IHLyk1kMAlvRDoS\nPlR3\r\n=kWIv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGmFHKHYHcC6pEAiAzzbbModabDD0UcHY/zwVHY8KU/qAiBQilQzuxcgkfVJR90Un2LEQL7GzST7LrrDhxWqyYPE7g=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.3280b686.0_1602806700433_0.7691015367646867"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.9e94cd38.0":{"name":"@material/mwc-list","version":"0.20.0-canary.9e94cd38.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.c71ebfa02.0","@material/dom":"=8.0.0-canary.c71ebfa02.0","@material/list":"=8.0.0-canary.c71ebfa02.0","@material/mwc-base":"0.20.0-canary.9e94cd38.0","@material/mwc-checkbox":"0.20.0-canary.9e94cd38.0","@material/mwc-radio":"0.20.0-canary.9e94cd38.0","@material/mwc-ripple":"0.20.0-canary.9e94cd38.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.c71ebfa02.0","@material/feature-targeting":"=8.0.0-canary.c71ebfa02.0","@material/mwc-icon":"0.20.0-canary.9e94cd38.0","@material/mwc-menu":"0.20.0-canary.9e94cd38.0","@material/ripple":"=8.0.0-canary.c71ebfa02.0","@material/rtl":"=8.0.0-canary.c71ebfa02.0","@material/theme":"=8.0.0-canary.c71ebfa02.0","@material/typography":"=8.0.0-canary.c71ebfa02.0"},"publishConfig":{"access":"public"},"gitHead":"805fad1d9b182d084e682ab7e59a4e45d40872a2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/805fad1d9b182d084e682ab7e59a4e45d40872a2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.9e94cd38.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-z1oY0tFu7fzkGgtQiC/X6QR0mrdxno5+WtOWszJzUXLditFATCdRYNnl6eI7O5ItbouJOIG6+RxP6xBCFv6S3A==","shasum":"1dc63bd26fc7633d42695f2671daeb498338780f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.9e94cd38.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfig1WCRA9TVsSAnZWagAAXGkQAIT7Qb+PEKZH3ka5EoKD\n7xW7GQKxk88ulSrqiy+D5d4M1F+MxDPL6g0bkmtrNvYqzuUiYDGoT22anH/p\njNpkPnMCTy09iJx0CQ9EiKVpkX9EZw1WDfbq+GZ2HPidym8izF0XMK20+DuJ\nrx45fGKwVrifpPAno4Jdd50xmxVsBaGb29kTb9/Sy1lNDn/v1PUpwRAH+9HG\nUIr5VIeZLvej5SewYLRTYl7Elf4t5JK4IVD8LeXueEpkpSTxgd2BA/9uWphc\n4YiVaO4yQD4wgKY8jv+qTZqIlKcxhxaF/ufXaCqyfqd1abh1uOWYOUQVZeP1\naK3/J0bo3C4Hs5bkkC2rY/GdifxaPczpW4LSLwGIbWWgqnSbORO0xxwHk/56\n8PYnKtggUMGM1QevEiNPx+1Uxjua2ceypEHT0dcWTcm9N3DRkRUJb7Ww6x3y\n8iOGIiqFLtIXbvpLtBhD0nE9DeYiI/M0R3xdtmv8yfWuYFsdwHhzyJqV0V71\n8fC1WX7949elnPUdbOzKw1DKxL/JwblXd2TyUcO3kpBnLFFFxxekvLDdXO7B\ndLMj2hhLq7iDFssO9SVGoF/gbqPsIq+BnHUOvEHmp5hnc/XQz2Zu2ZHM76HM\njXaNmp2PqpSyLh/kjovjX81N5POBRPEjB1VEBabXSQamOJfaS/1VIUkY6dQf\nCi4j\r\n=rNhV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID/HI2MqQIx6l2ahxFHx+5nTKntNLQER9TX8IfrMwycRAiEAuoPPuQPcS5tmZFg+PNmSyAUJIlNTAxA0eznEYTUpUNE="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.9e94cd38.0_1602882902166_0.023684699685803112"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.4773c773.0":{"name":"@material/mwc-list","version":"0.20.0-canary.4773c773.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.2ab716cbd.0","@material/dom":"=8.0.0-canary.2ab716cbd.0","@material/list":"=8.0.0-canary.2ab716cbd.0","@material/mwc-base":"0.20.0-canary.4773c773.0","@material/mwc-checkbox":"0.20.0-canary.4773c773.0","@material/mwc-radio":"0.20.0-canary.4773c773.0","@material/mwc-ripple":"0.20.0-canary.4773c773.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.2ab716cbd.0","@material/feature-targeting":"=8.0.0-canary.2ab716cbd.0","@material/mwc-icon":"0.20.0-canary.4773c773.0","@material/mwc-menu":"0.20.0-canary.4773c773.0","@material/ripple":"=8.0.0-canary.2ab716cbd.0","@material/rtl":"=8.0.0-canary.2ab716cbd.0","@material/theme":"=8.0.0-canary.2ab716cbd.0","@material/typography":"=8.0.0-canary.2ab716cbd.0"},"publishConfig":{"access":"public"},"gitHead":"fbc8b44864ae10f0bb46e568b25bf4de49eab777","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbc8b44864ae10f0bb46e568b25bf4de49eab777/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.4773c773.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-zCabNuwiFNNgOcAZyWdltikRxLI2UW2qasZ8qVI7CGNXhIxJBp1i0FEKKeowVSQuOL7Rt0/kcawh1q4fVWbYjg==","shasum":"27bb7123ad4184eb8caa088813fe925c1082ec6a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.4773c773.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiiAGCRA9TVsSAnZWagAA2ZcP+QEnsZUBnpiRq0sVHNnS\ngqhhLlW9N5nciFY0VdY6uZ9IeYKuAyfFbVrEENq6lmM4zrF8rkftFrWdlvvH\nceJ+BmAJbauSfgyiLyKdBToDRz8ymgjaTFXmNEVk2SjDdgl3k/5s9sJsXDaP\nQKoAaJFJ/MskaAaWtxR5/MMo5EjXMV5qFyTTXII5J66H3eSTXnAo27+6cpBQ\nepcLkP+xPS5Eb5/vVI6TIOtPGP3N1OTjnonKgBVZkUWwZ2rqSygX2LIOIfeJ\nukk73oXPekqKqMGWBya8gsfXxL/tr6b1eWglQ6NkT3RTW3GemMSB+dEp2+Li\nk5DP2mzOZ7Qe05vaImG5bVDlr2GbDQ8aFm19s08GxVzaFPo19nOEpYon1I3h\nQXOILQNqwuYvfUvdgoB1PaEZS+COrg0wpPxCT7YmUQbNJLXgBPVShC70yjPr\n0s7tU6vMSSuAoHqjGh5xSaEMqaW2eSkF144sjm6VjhWBfmyfpjKcnb/nHYqE\nr6WyhGFd5fxHhJHeAzvLwylCCvDjx4k3yTsq6bBKbn0bd5oKbtTvvl1vGGmt\nzm/2VNXezLf+ossplo60sxQVq6etyHq6pO5dqnkIEEkVngb/lv2o+M2N9ozS\nlSHBNcyNA0tblymMTb0rHcVCte4cCafmbZ1x6z7WwfiNHfbzKm+O1TWXhLBS\nfTI7\r\n=94DV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICtZXVQinjy42cGJO9sHY4TvhVVS98THzf6SLPdXOZ60AiA9zL6/noAKDOrrQHlF/oWHJ16oAvx39sL/r09oD4Sjmg=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.4773c773.0_1602887685446_0.9589269878077464"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.65787913.0":{"name":"@material/mwc-list","version":"0.20.0-canary.65787913.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.43c1c5e2f.0","@material/dom":"=8.0.0-canary.43c1c5e2f.0","@material/list":"=8.0.0-canary.43c1c5e2f.0","@material/mwc-base":"0.20.0-canary.65787913.0","@material/mwc-checkbox":"0.20.0-canary.65787913.0","@material/mwc-radio":"0.20.0-canary.65787913.0","@material/mwc-ripple":"0.20.0-canary.65787913.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.43c1c5e2f.0","@material/feature-targeting":"=8.0.0-canary.43c1c5e2f.0","@material/mwc-icon":"0.20.0-canary.65787913.0","@material/mwc-menu":"0.20.0-canary.65787913.0","@material/ripple":"=8.0.0-canary.43c1c5e2f.0","@material/rtl":"=8.0.0-canary.43c1c5e2f.0","@material/theme":"=8.0.0-canary.43c1c5e2f.0","@material/typography":"=8.0.0-canary.43c1c5e2f.0"},"publishConfig":{"access":"public"},"gitHead":"b21d55977da5e0c291e9fcf3fb992ff4c683233c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b21d55977da5e0c291e9fcf3fb992ff4c683233c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.65787913.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-QfsLJQOJVFyYZBmV+Uq5LcpFZo1YIzgES3r41NmgFMGjna2B6vW7oFULGts80DqfACDC5fpkXN4J69A+LG7F+Q==","shasum":"1e4d5b9e6f1b4690ecae97ceef2a8377b7a4f48d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.65787913.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjeA4CRA9TVsSAnZWagAAJ4AQAKQsTthsKuHuAibdbvzJ\nlsLzsV0mID8KF78HFVd2IrNii0WtGvQE0ALJ/vAtnCfbKbREVx1z23rSoe7l\n+vvD2OWLeGLv3AW/pZk2R2o1rhC/5/OecmDMqWemX53HpwUA+Ycg3XGYrRrC\n11qR9WYIZeZ6VvHJvlHNnBLNRaBG4/1hCg+bCJidN85cxqiiFiPh8fEh8fNV\nU5DLK8J0A1njbs1L0jtbwRIsjXftYI8Hu1OUdUPYheABoAvwPp8KPrjkHb6j\nK5MdfhUgkQZJYnw5ZKzvvtsCdD0DqJzLmYSlPHB9wyJPtKdU5T28bbNl2kd3\nfhs1wlugD1/0pmUDVS6QWNyt8QaFL0PHhe9IsS7f525IQPCO1z5f0YnyfikU\nixSm3h02qlQarxpBt1lAoOg4owqvN34Kx36v4mNz/LUSU8OG04tSb0EvNxo+\nx5bJm994Z1n/hyiGeBsKQwrsu5/SAcTMLu5TmX9gMzebx776DNp5T4v/EuS/\nESHi9OYyDsgyc02bSTpnVJI8K6bsItbqNv6fH2iWn6xUkGqhciUxqLjtPewQ\n3P5W5fqlvin2cTd6/sRdiO1giDCve7bXiiTpyr1q9cJrPvyXBTzBaGFWXeW1\nad9ZoC5yMbyZsz7sFQBWhWpMR+mkxnl900pk4fZmvmixu8qocUkPQHYthCHb\nNAkq\r\n=735U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDj8vFXRHJLpFYcT7Igf7IAUTspM/lRSpXFGzA32KVttgIgQFi+FQL0cyKWSmBk8wQ5lcOU8QoebLWleyHbpFL/7og="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.65787913.0_1603133496523_0.9691921794984255"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.5485fba3.0":{"name":"@material/mwc-list","version":"0.20.0-canary.5485fba3.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.43c1c5e2f.0","@material/dom":"=8.0.0-canary.43c1c5e2f.0","@material/list":"=8.0.0-canary.43c1c5e2f.0","@material/mwc-base":"0.20.0-canary.5485fba3.0","@material/mwc-checkbox":"0.20.0-canary.5485fba3.0","@material/mwc-radio":"0.20.0-canary.5485fba3.0","@material/mwc-ripple":"0.20.0-canary.5485fba3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.43c1c5e2f.0","@material/feature-targeting":"=8.0.0-canary.43c1c5e2f.0","@material/mwc-icon":"0.20.0-canary.5485fba3.0","@material/mwc-menu":"0.20.0-canary.5485fba3.0","@material/ripple":"=8.0.0-canary.43c1c5e2f.0","@material/rtl":"=8.0.0-canary.43c1c5e2f.0","@material/theme":"=8.0.0-canary.43c1c5e2f.0","@material/typography":"=8.0.0-canary.43c1c5e2f.0"},"publishConfig":{"access":"public"},"gitHead":"9648298c6a3406f312222d0c0949954cc1e250e4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9648298c6a3406f312222d0c0949954cc1e250e4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribtue is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.5485fba3.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-UH3olkvgAxdyj9X8ZdVmeYURJhad3L8VjxexQOhkSpD3Lygpt/pf9kOUlXH8vrRw3e4/L8t3bUNm9mN73VpOeg==","shasum":"a1fb98b56e3db7a641fc3646775a906ca20ca7ef","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.5485fba3.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfjgQeCRA9TVsSAnZWagAAIowP/1Wezp32rHWbXbDfF7cG\n6xwynv+jXzCtTeUfoZtZS7wUcu5V9U673F2Mjt5ri+Vkp1fVwL/alv6S7usj\nuHnt75ATSl9qADWNJ8onI2Xh8veuYJmlS2xRMlfCQ7NZL4TKkGLuLgKGC1O2\nfIW8SyztMNNNuRA5XoODnlj2jwjFoqSKXWku/7D6ZWFJR6+akGjftyFMUhWm\nrjIudQlwMb7LvWk2veP6Bgr1Ws5Hrop0yeFDRUp/ihfOOYR4Gl0f0K52iSax\na3QnEzwEj2TEdMFbSjKRE28Qana54ntdt2+dRqVfkum6cdDWbg1moFsrpKHm\nbGf1MZORrHrkqZHzKIcCMOknqhF9+HlUZzJpaGABHDp1Y4rDOdClzAkeixKq\ndEZM3L7RPxwIMacNZ8XaZnfcivvHP+9ITkEV1i9QeO28SnlvcMAKFIaFiYTF\nv9cBeysk6f8yc6r5G6vmI6fYEi2NMBFtzzDzu1od1RB/XTav/L30NMX9Au6U\ng12PEgcIuoix0qot/LztHiKVQI8PxLxpo4+ZoPMlHcLUQE7jn2qBFz584r3s\n6hKNZro1tBPr0tTejoJ9yiVE4pd5YBCgxD4y0Z3/wADmSVCGxWcX751NjW+c\ni3xm5nymuJqLF85ITT8nldD5spSvo2AuULbONtKhcdaHLEm9A3Fbp0yFBBfI\nxyoC\r\n=Db2i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDDselmRzRj3tVrjIY3hR60kEu1yZOO2vodtfT2FSJAqAiBjV1HTtcZXnvS4UTjPPlgZHdKk07kejvr2GEO/sBBk8Q=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.5485fba3.0_1603142685993_0.5874992990441228"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.a39d0a92.0":{"name":"@material/mwc-list","version":"0.20.0-canary.a39d0a92.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.43c1c5e2f.0","@material/dom":"=8.0.0-canary.43c1c5e2f.0","@material/list":"=8.0.0-canary.43c1c5e2f.0","@material/mwc-base":"0.20.0-canary.a39d0a92.0","@material/mwc-checkbox":"0.20.0-canary.a39d0a92.0","@material/mwc-radio":"0.20.0-canary.a39d0a92.0","@material/mwc-ripple":"0.20.0-canary.a39d0a92.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.43c1c5e2f.0","@material/feature-targeting":"=8.0.0-canary.43c1c5e2f.0","@material/mwc-icon":"0.20.0-canary.a39d0a92.0","@material/mwc-menu":"0.20.0-canary.a39d0a92.0","@material/ripple":"=8.0.0-canary.43c1c5e2f.0","@material/rtl":"=8.0.0-canary.43c1c5e2f.0","@material/theme":"=8.0.0-canary.43c1c5e2f.0","@material/typography":"=8.0.0-canary.43c1c5e2f.0"},"publishConfig":{"access":"public"},"gitHead":"c523e6fd9acdd92ef501444da567a8910ed478e7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c523e6fd9acdd92ef501444da567a8910ed478e7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.a39d0a92.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-8EQJAK7Uw/Elya2GXyAjAep490Hix0aBIWmqozUHwpIF48atVHh8uDNqwoRA3J6QLEm/eyzjTTKX+xkyNX3L4w==","shasum":"777707a188f5359499a1a9b6ffafd86b86684312","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.a39d0a92.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfk0oGCRA9TVsSAnZWagAAr30QAJIYE75ncMlUqHQjZ+Yk\nA/JWt9AFH1oc34Mlz0sIQO7hmoTC4/mLW0v6YAy+2pZ52TtXa0g/7bUoVFZe\nPJDHDQDOmwxunFv+a7yb2n+pRIRI/8U3NTpSYXwj//EjpQKStt0O9C8ogC8Q\nO43zoqOdlVMgEHfEHnXWXiIzfcS/sb5hxYQ0TAMw9VjMddsD7nmrB/uu9QmX\nBsAgIyCvvboAcSW2oxiAsVtOhpOK6RoKHUEgHOBWQaEaxTaVuh7LnOM25duW\nigzGW34mgK0/J3D1MbxRGFSFXv6jE+gncguzlmGq9EmmfCMaRrf7BjCENNIS\nnwK5N/pn59rwPffCKHWDej1ewuqMns6P09/HSLMZyuqrVLn13xSavWyUPCEQ\njvaQWRJ7bnHKDpOh6QYeUuAaqtMzejroo191zcswJ4/tDs9uAE0KW3bj3Ufo\nHl83DNUK4S6KMybxgTC9dqfPpjZNKjk9ZY3giJ3XvsuhbFC2kqjYrQkvGEhU\nQwE59sA0XXZb2OELRYKpCIGkV3XBngO0d9zXVqIv9q+99JbgbXeStLJbKx/o\n6Gqk9MJlyjpQXtmszIjZVczNI/PAIDAwV9aIpLGwKH4eRPX7HY6C5095yelD\nOA+RyIOvEh27ExGOHUuWdtHVmumZHZ8SzWR1fp9QMQJWebFTbCl/qL+Dqop1\nL88W\r\n=3E+i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDLA26gjHTgoSX4vAiRZoH+ixJCSdzh3xtqak/BfXFf/QIgdMvkOFyxGATLHrxgiQ92654pjfv7jYZswqrHykvJMfU="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.a39d0a92.0_1603488261672_0.6791684341737769"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.4eafcbc1.0":{"name":"@material/mwc-list","version":"0.20.0-canary.4eafcbc1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.ccc64eea3.0","@material/dom":"=8.0.0-canary.ccc64eea3.0","@material/list":"=8.0.0-canary.ccc64eea3.0","@material/mwc-base":"0.20.0-canary.4eafcbc1.0","@material/mwc-checkbox":"0.20.0-canary.4eafcbc1.0","@material/mwc-radio":"0.20.0-canary.4eafcbc1.0","@material/mwc-ripple":"0.20.0-canary.4eafcbc1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.ccc64eea3.0","@material/feature-targeting":"=8.0.0-canary.ccc64eea3.0","@material/mwc-icon":"0.20.0-canary.4eafcbc1.0","@material/mwc-menu":"0.20.0-canary.4eafcbc1.0","@material/ripple":"=8.0.0-canary.ccc64eea3.0","@material/rtl":"=8.0.0-canary.ccc64eea3.0","@material/theme":"=8.0.0-canary.ccc64eea3.0","@material/typography":"=8.0.0-canary.ccc64eea3.0"},"publishConfig":{"access":"public"},"gitHead":"d5be869d7cb28aaf425a4fae37a4f61d918dc1d4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5be869d7cb28aaf425a4fae37a4f61d918dc1d4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.4eafcbc1.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-XrUpcXi9bssI6QBAUIcU5XyNNDvpN3poeCP7jwKOs4KNKr0wEQ9FHB5aXMVRTW6KemMBfqVQgd+O2fMTv4OgJw==","shasum":"295f1167ce1c3b6b421b1eec47bce964806c3a3c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.4eafcbc1.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfl3YdCRA9TVsSAnZWagAALuUP/idKnhRTROlKDuq2stoH\nb49FJK82e01xndYjAGp3pwaF2SYGVBejnzdQ2jw54wzwMW0MhRpx0z/iTedS\noeb2SXZpSHlM/dQ7UXjL1HxX+070VihVayjGXBKgWJcJJplKiLtKPze8SOD/\no6gbhU+1aIB9f7vOSEQu1SdHGUKd5F9TyD0MYVm3z1REDUB+ptvhkMnntRHc\nsIJXa5jPKLU+gDguzWe/FGqeXuVYRr885FPJh5mkCHqRG47DZKOhZu+jU82d\n/Zj0atqw8BFE5A590nQTEitnsdgqOUoKdXtjMoatl0KLZWEt9OIcwLY06iiz\nRCUPKAJiHfVJYqY7ufqwRDCEib+g1qkO9qkEjc5IBkGut+VXIC1CJS8q9RvO\nLvxonF2ZL0cL6l8A6jd1iCoJg9jrdgyAFi4L7Rl8aLi/pbSZrL/PDW+ozsus\nEXZ7pmrfdsSdwlsYPlC2mdWOgoUuTIMHBwiH63UgdmAwAKfymL9S2dvq3++z\nyvZjoMo6C3Op/rmrZ/+nB0H/1MWHxRvHFgZsRo9sygR6OJgMGA8PabueGHga\ntb/v0QlIFvlpGt7QEvvvKLSFz2vIhwTsVHFS8Gi20VT3mEQmNByiuKPm+MW/\nGGoko4pGW45Dkkm5Awd5MaggC2J3oQq24xt21cTkwNu4s9Jk9Y08zMeIogoj\ni5vp\r\n=Y4ir\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTh09aTsgsa8UNdulepNP+habuURatXLJfvYCxwfegpgIhALIyzpMv5zkGr82uGnsq4b1FDqhF2LaOXZr9AwqJKjEK"}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.4eafcbc1.0_1603761692675_0.4203384553347831"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.32961593.0":{"name":"@material/mwc-list","version":"0.20.0-canary.32961593.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a79cdd019.0","@material/dom":"=8.0.0-canary.a79cdd019.0","@material/list":"=8.0.0-canary.a79cdd019.0","@material/mwc-base":"0.20.0-canary.32961593.0","@material/mwc-checkbox":"0.20.0-canary.32961593.0","@material/mwc-radio":"0.20.0-canary.32961593.0","@material/mwc-ripple":"0.20.0-canary.32961593.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a79cdd019.0","@material/feature-targeting":"=8.0.0-canary.a79cdd019.0","@material/mwc-icon":"0.20.0-canary.32961593.0","@material/mwc-menu":"0.20.0-canary.32961593.0","@material/ripple":"=8.0.0-canary.a79cdd019.0","@material/rtl":"=8.0.0-canary.a79cdd019.0","@material/theme":"=8.0.0-canary.a79cdd019.0","@material/typography":"=8.0.0-canary.a79cdd019.0"},"publishConfig":{"access":"public"},"gitHead":"af0d60d5c2174ff8ae5098ea73212398be59bc74","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af0d60d5c2174ff8ae5098ea73212398be59bc74/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.32961593.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-TEk+k2xsyRm/uc90/ZbkzCqoIZs894SLYCNWPJRp8FsyEo8xuWRhg4xHX67i5Nbf+QEWQQw8NErOeAgRnwlUiA==","shasum":"3a13cb7cf4aec1e094bfaa368f4c0f9d1c3410e2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.32961593.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmL3RCRA9TVsSAnZWagAAKDUP/jH6f9ABiTynoOtDDe8I\nCbqD3YaWqdscS3Y3qgQ/R5fh8HDxXvZV2nKKS9JqOTugY02niJlsuLAfMtfy\n5c0PH6tX8IY6lkHsp6/2xnmL2FTlf/RIvMFuNjnesnAPOoERzEUYA4ZC9nzv\nyItxWvXNh/0/QkjxNfLzgBuE4myIM8z+oXfMb0y8GZeDGt7sznpzeajGlswM\nZC6Pw2K3Zwphlzc6u8spKBk0gLOAxghQiAiL3QJ0ZTdXUrKxZS1/XpmnLuDd\nKtYHJpY8x5p28ybwLKL4fa7IniJC3iKPvGaHruI3bFHLfD6y5bHWdn7u1+ab\n+9JZEvkodWqR1zofmBwqxb6EpL60yuTOvWBTTiwGhv2lFG+qt9DP3NzkMaA+\nb6rGluABtBxLe3JLTYyO1vA+pP8iy7Q5yADWhuuhwBPpW/3wTxNxWKbXt91Q\nifhD25BaDmf6Zvic1HZM6UHMyasyRIiUlcMnsO/OerJUXi7L/vNSy7d5v7jI\niSLIklVKVEI0+uB3ySjCRzQ25gCL8jj8agOP7vLGLtFepV6WxkR1hEUQJOTm\n01GT7mwo/+VcESS428/UrfioitZptNU5wdIjx1W+ieT0dldRZK+mRogGfuwp\np5o4JRnGFsDvoSmt7gMjEm1bUiNrXBTxBGj6IGe9Fvl6fzICwsm7DlQapLX8\nedS3\r\n=U5bT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDYPqNrNauFKf3jexlUX3o3HXQr5ThRb3BodVExdVbqOgIhAN/gtxNGcB5Y5DMhykMF/wc7P6LHokF7blK7HgVTH+zp"}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.32961593.0_1603845584713_0.3934479160347666"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.8e3a0601.0":{"name":"@material/mwc-list","version":"0.20.0-canary.8e3a0601.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.a79cdd019.0","@material/dom":"=8.0.0-canary.a79cdd019.0","@material/list":"=8.0.0-canary.a79cdd019.0","@material/mwc-base":"0.20.0-canary.8e3a0601.0","@material/mwc-checkbox":"0.20.0-canary.8e3a0601.0","@material/mwc-radio":"0.20.0-canary.8e3a0601.0","@material/mwc-ripple":"0.20.0-canary.8e3a0601.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.a79cdd019.0","@material/feature-targeting":"=8.0.0-canary.a79cdd019.0","@material/mwc-icon":"0.20.0-canary.8e3a0601.0","@material/mwc-menu":"0.20.0-canary.8e3a0601.0","@material/ripple":"=8.0.0-canary.a79cdd019.0","@material/rtl":"=8.0.0-canary.a79cdd019.0","@material/theme":"=8.0.0-canary.a79cdd019.0","@material/typography":"=8.0.0-canary.a79cdd019.0"},"publishConfig":{"access":"public"},"gitHead":"a21493f177ef3992fcd667ec3ce774d4fc926d7a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a21493f177ef3992fcd667ec3ce774d4fc926d7a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.8e3a0601.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-GMhRwjyLQBer5AaO9FSTr0eHTLAM7UEchh2xJlMLV6IKhr1JIXdxKYAK5ifE8f8BvvR64UfxVcHfJnSDFOuLzA==","shasum":"68d0518f13cb4d961eb2761dcf355dec0c0d37ca","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.8e3a0601.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmzYkCRA9TVsSAnZWagAA2SsP/jgIBfyGdHA8X672JzEs\nkLia0Q1YOf/RT7pjhkRMe8sD2dGr3BYmtBgArBJohOu7TVc3RUP2IVXmOFKQ\nrHcK7H1LiHTA9sOy3XVZbZ+h9AAAkeInm6YmbnioMNd7pS8+MfngdrTq1uq+\nCv4wmQaJqzbW5dBKNy92E7+cG4tW4m1rZxeuWxOStHlGEgIWfoC5H3LJB7RW\nu8qs7z/OVR8DHzf6VDgKA0c6yZtJm0Stlwlu+fXEGRd3Szn0Oq6GzfTEbCCs\nx8gXnCffUUH/DNGdK0YiNrV53CAknI0lywHXJYqAGS8RNMfx/C/a8q62xoa5\nFE1Q1RE30v+Ut5eN+Jum9TMQ7hHTubOtDXdsFfjIAtwhFcLlIXFrI6rjNRPD\nNHhSeqyOifyFM+Lmf5tkVTbfxFyRcc0TBt+/c4v7NFHmXtvhzl0mTcNby7Gs\n87H/QbEsNnCq9OOURn2FLdYjnu+DjdX6XQJ8+9M8MGdPRgTCvrIyTSR+DzFX\noAEZR7LtDZ26fftzHj4AiMSSmoQE9ieNZCcegBW/lJXX6KY2zyfJzMPJiGq9\nXrlpIMMpqaBkN+CFue8s4834CCAacva3cQ/M+93cWn8GM6+PccUfIi2Is2zh\n7rZbOEIC7ktBGdfSZp3zXPSkUdCQLFjjxczKqiGOZEfGISll+pDZClg11cQ1\nfDXE\r\n=iE8i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD0QXA9rO8AZhwMk3AXZEsKWvRjYrG7Du68cRh5UQtVpwIgXxOtA7f5saw2T+l/oKu9ua2Z8nOov0awG2Cvb/GnLpw="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.8e3a0601.0_1604007459901_0.6268148813994763"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.178c25b4.0":{"name":"@material/mwc-list","version":"0.20.0-canary.178c25b4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.6d9648ab2.0","@material/dom":"=8.0.0-canary.6d9648ab2.0","@material/list":"=8.0.0-canary.6d9648ab2.0","@material/mwc-base":"0.20.0-canary.178c25b4.0","@material/mwc-checkbox":"0.20.0-canary.178c25b4.0","@material/mwc-radio":"0.20.0-canary.178c25b4.0","@material/mwc-ripple":"0.20.0-canary.178c25b4.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.6d9648ab2.0","@material/feature-targeting":"=8.0.0-canary.6d9648ab2.0","@material/mwc-icon":"0.20.0-canary.178c25b4.0","@material/mwc-menu":"0.20.0-canary.178c25b4.0","@material/ripple":"=8.0.0-canary.6d9648ab2.0","@material/rtl":"=8.0.0-canary.6d9648ab2.0","@material/theme":"=8.0.0-canary.6d9648ab2.0","@material/typography":"=8.0.0-canary.6d9648ab2.0"},"publishConfig":{"access":"public"},"gitHead":"80850b707414fb51c8072422d293bc7fea8a6d8d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/80850b707414fb51c8072422d293bc7fea8a6d8d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.178c25b4.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-4armA/zW0fMlRiPszL2+jVUpFu4nbiGnzr3uqh/Gom1G4xXji6Y1xUq8Q8lIknTgojewAIhca6lcUYElMhDhJw==","shasum":"ba8e18ab843d377a4f0305ec2d086ca1f09dcb68","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.178c25b4.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfmzlOCRA9TVsSAnZWagAAtLgQAKC+CIGMtMmXqflNcgyR\n9H7JxuLom0DGAofd3A2r3/Ie+b/9OECio2ypO1pqnWQrf6gY2hMdCFn0ziez\npC6swWPI4JZRYnBvf2QcFdmU7PbabpwvlfhEBMXxy9LCaEjX8pY43iALdoDJ\nax423a7HDB4BYyldw4ryaz5iEI3q2i3OSadsWpSwd42ENp8pvkhdyn0tnHQL\nP5dIzFAaF5Ni78Zvmx5g0dkpji3jkl6L0PJrPDNlYWjGZ+N8VyAJSJcqkKmv\ngM+cWOpRd9Ol+lBJKOhIUL8aQhiApeC50KS/J5ZUNQwe/ZJLPlOOWKYu7fqv\n/7+k4g1IymASGutlw3K8feyV0VasHPgJ/P8HuIdS0UHat6B3JUtu4tZDREzm\n6xfNsOMCsJSPh5iZLG0NRYqLpCvfd+W8+iiSlAj5NGDuEYBhP2iv/0JK6sc0\neui8LJcXLoY4ML0rTH2g6wImbFYI2sXawzoEblfNBu9t24FtABXvxgpSI5Z8\n7WHaN6pTCedRfKoNyh9jt20hK9lblA4RtyAXufNThT0/H0LDj1NrvJQUHjVW\nBGQQjv2yHcfEGGYwvWwNlyzWWcd0F8rAgCeSAvr6rFuIR84HqxlaF53A/uCU\nzpNoLSrYNFchfiQOo6KYIw8UthEID71CfP3vUiRN+EnVpuYynvm1vBSjUZiX\n+WZe\r\n=Xssn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHH0Nx2Gp9A4RmAkZhN7euIfIqWjLKdYPbq0qu778QTgAiB1kzxNvFVXO7GT1+Q5RLEMx0ydplaSWLAI6K30DaQoxw=="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.178c25b4.0_1604008269954_0.5000155058857285"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.124beb49.0":{"name":"@material/mwc-list","version":"0.20.0-canary.124beb49.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=8.0.0-canary.6d9648ab2.0","@material/dom":"=8.0.0-canary.6d9648ab2.0","@material/list":"=8.0.0-canary.6d9648ab2.0","@material/mwc-base":"0.20.0-canary.124beb49.0","@material/mwc-checkbox":"0.20.0-canary.124beb49.0","@material/mwc-radio":"0.20.0-canary.124beb49.0","@material/mwc-ripple":"0.20.0-canary.124beb49.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=8.0.0-canary.6d9648ab2.0","@material/feature-targeting":"=8.0.0-canary.6d9648ab2.0","@material/mwc-icon":"0.20.0-canary.124beb49.0","@material/mwc-menu":"0.20.0-canary.124beb49.0","@material/ripple":"=8.0.0-canary.6d9648ab2.0","@material/rtl":"=8.0.0-canary.6d9648ab2.0","@material/theme":"=8.0.0-canary.6d9648ab2.0","@material/typography":"=8.0.0-canary.6d9648ab2.0"},"publishConfig":{"access":"public"},"gitHead":"8d314226afe84cba75086ef952556fa1fc0c5de7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d314226afe84cba75086ef952556fa1fc0c5de7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.124beb49.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-WFqlwHel920veUHHOdNFDhVbmgFKIxuvUJDWaNDSOwe6Mt+x8USNkHqTfV4TlGjv09QBdkNwEBQgvAFx+2YKHA==","shasum":"c702f5c2112f1ebda8b75f4b547ca61acf191722","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.124beb49.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfnKqqCRA9TVsSAnZWagAAnI4QAI7aAPSA2mqIbpNnBeNr\n7phccCRKAUsGuVAbWm8bAJdV/FYHIGw5Ztz4kEUkFDVSnyzNroUrVB6gGYHi\nfCl5bXYp411xdGJij4FjnqlLwmheNVxCiyGEpqSYiZUTpIe2H5iv3TluNqHo\n7pRmlIu+NVAW5xCkoyv/2xq46ZnMpvP3Wa0yKc503HR7SZKrNoNN08oc+Utc\nOPDNv+VN8LEuD3KYIsZOeSzA9xojdvJrs6/aVeFMZpJWpcoPqpR7dOlXJmA0\nL+KMHUYbcmdG+wCvSYPXTQjuJUVPW8ArPxkOABghbi3COHCRbu0argJKnVcZ\nfAhmOekCy7oo1dY92MwZlOCYIixUdTL5qzvse6+4wlIqYdUbiGUaVYIgapSS\nG97tqMyUFcM39K60zrLP2bzPwbH4Wc1q/TuM4BcWAUODqDtf3zhzMaF+Gcfy\n7wFlR6twwSUWBv/zec9eyWuCtI4JPCOT6jiH7VjqKIGbAjxWvE1cPzmr3ltH\n1zQNTBdfp4/vi2SM8uiUTvmyCYJpynsNCyKO781Bvjb9yQIdbznEL3Y6yfiS\nqEG20rGrRk54+arthVoeDWNdz3EjUoGOc3TjVoWTNJT2UhiAcntp7hKGSLbf\nuXZ1ETVsnGAbJSD0W5ICvRa8B/oEtJO5tBwld70cGthZ9zBJMpEX8tgSSUmd\npF/I\r\n=ZnVm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBBdhS9pVS17tULUbqLk6/BNzwMWPDovc7P4IO6oiZ4TAiEAy96YNBpAq+veqY2nE48la2RbofvjtzTxGQ43hm3dI4I="}]},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.124beb49.0_1604102825660_0.5235736148793837"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.5937f468.0":{"name":"@material/mwc-list","version":"0.20.0-canary.5937f468.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.d6b5cd418.0","@material/dom":"=9.0.0-canary.d6b5cd418.0","@material/list":"=9.0.0-canary.d6b5cd418.0","@material/mwc-base":"0.20.0-canary.5937f468.0","@material/mwc-checkbox":"0.20.0-canary.5937f468.0","@material/mwc-radio":"0.20.0-canary.5937f468.0","@material/mwc-ripple":"0.20.0-canary.5937f468.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=9.0.0-canary.d6b5cd418.0","@material/feature-targeting":"=9.0.0-canary.d6b5cd418.0","@material/mwc-icon":"0.20.0-canary.5937f468.0","@material/mwc-menu":"0.20.0-canary.5937f468.0","@material/ripple":"=9.0.0-canary.d6b5cd418.0","@material/rtl":"=9.0.0-canary.d6b5cd418.0","@material/theme":"=9.0.0-canary.d6b5cd418.0","@material/typography":"=9.0.0-canary.d6b5cd418.0"},"publishConfig":{"access":"public"},"gitHead":"d1d2934f5269407a8c0f85d5112be5354c17a971","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1d2934f5269407a8c0f85d5112be5354c17a971/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.5937f468.0","_nodeVersion":"10.22.1","_npmVersion":"lerna/3.20.2/node@v10.22.1+x64 (linux)","dist":{"integrity":"sha512-u8FjwJRknU09AfAER5YchgbjxXNFLgQmFnsgIrm1QrNSqmgTgRdQ1aP8SPcPGgVLOwK2sZwBDJZkY57/PoEKRw==","shasum":"c320c626485b5229c6b45c861eca223e50a89e76","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.5937f468.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfoxfSCRA9TVsSAnZWagAAll0P/AkS/iL2/0qqATGAgoPF\nA/ByRovy6NBYRlNLRLKRR910rAInziWTwemAfoLcChVtDBH8vp0F7z9bVxtx\nwyv67FpqjzJQ9f+UNVAMlRO07dVYDrXxzfYsXSCZY5UfJPz5KwKgWLD5y8x4\nCeivqtZjDlhd3yNV/peOHSVnSzOnFm5CPVjGuUCkSdm5tt5OQhvMfaFGJzMz\nRs3I4mEqluF+hxt9mM9G6bUiAFBJGCR8pQ4jopEFu7N4KZIvUSq5ueRtCq6C\nyd1hcPOI2vClfSdYOAFy7vD5Lb6DY48CLyUEJ29iK5lY6QK4uotp/gvg/KW8\nvcAZacDxLYssOUf9yFcrrdHWBQ+aYeDt5hOyeVXZUW/WhNH0duWe/PabJA0e\n44QLr1pUS/MW0LBV2fntDC9MNIdMC7PJma+ssk5qgA6O7dOPQTCtJxDhuvGU\nJqGlVoUHxoeDD6XuTZ7EEqQ/CpfqJ8GNCd9wJfoeCeXfQyLgc02EntY5UEla\n+TZbLmeqgrheCrQKFcORbjYH6+dE6gRfW8sATKHBHN0ts+wuksxE/nYUfP0t\nLPgWayUO2waVAqhYs8Xn0k/qqVD+grMVoTywxeYhSMNX9nkMpfMzq56oUJ3Z\nDq5nGOfBwog6mnL9bLUOuTE/K0lJgW4BC+ENKBiTIYdzIC+jOApmBQjeh3jr\nStD0\r\n=vPHI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGdGtfyttENS7JzcxHgBSBeGdbAOkOkSj25FsJn+ZIbEAiB++5bBFz+3J9pXuZfsK8+5WOhHD2gbNppw9C6WZWeV/A=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.5937f468.0_1604523985750_0.2843255637414084"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.a9bafaee.0":{"name":"@material/mwc-list","version":"0.20.0-canary.a9bafaee.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.d6b5cd418.0","@material/dom":"=9.0.0-canary.d6b5cd418.0","@material/list":"=9.0.0-canary.d6b5cd418.0","@material/mwc-base":"0.20.0-canary.a9bafaee.0","@material/mwc-checkbox":"0.20.0-canary.a9bafaee.0","@material/mwc-radio":"0.20.0-canary.a9bafaee.0","@material/mwc-ripple":"0.20.0-canary.a9bafaee.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=9.0.0-canary.d6b5cd418.0","@material/feature-targeting":"=9.0.0-canary.d6b5cd418.0","@material/mwc-icon":"0.20.0-canary.a9bafaee.0","@material/mwc-menu":"0.20.0-canary.a9bafaee.0","@material/ripple":"=9.0.0-canary.d6b5cd418.0","@material/rtl":"=9.0.0-canary.d6b5cd418.0","@material/theme":"=9.0.0-canary.d6b5cd418.0","@material/typography":"=9.0.0-canary.d6b5cd418.0"},"publishConfig":{"access":"public"},"gitHead":"672dd0ebc89e93768abf9e9fb4a31fecdd7873ce","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/672dd0ebc89e93768abf9e9fb4a31fecdd7873ce/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.a9bafaee.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-7oU6SMDh0yJcqqt3IR+a6PHvRi2rPYLcBoJybZQlxGaNoOiGs/dV5KMkjGCtMAvw8+aIMLLuezdfTnbhubeFVw==","shasum":"184741cd846aa6a4c8ed9e68a9bd078ab8f11848","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.a9bafaee.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpH04CRA9TVsSAnZWagAAaE4P/2EsZDb7T33rTgH0sUb4\nLv9MjJrXYMzpUwqhNgB054Djibs/i9e1HhvgCdXgiEmvPiyVwQZ6m2mKAET3\n+E1BrRDA/0Gzdg4/BkrksG0L3sDXqyvxt/OJ5GALHoEcETlL2FP+aWLnGOdA\nOvzPK6qiHsLfeG+sCHE6V4Hz/q7y5ZUn45dm3OaUOVt4SsjOwGPgiz8RHvfG\nNrAVelWMjq8Q6U6afnGtDBD27ZA8mgoHwq93Z1fe+Cpdq/kAG3dqvZRDG/T7\nysuWoK4YiLUUSb71rsUvLJmMpPLSflEE/HJM3NUY+TP8KOwbXnP4yXhouJgM\nRd234SlbJ7sgpPySGhn+vPw/E4lqNJHPVqMKGOVY6lwsU62Xp1wi8yGhibiz\nYne43U3oRl0vFfHwcADrjvkLfXXhh5j/75p111NhyG0cOUM/CodkL2fi5ISh\nnZCGxfWigCiRaPmL5rs+TFtUDfncGUUM9f2D11Cb6sfb3d47hJrp8M7OTjhu\nPASwhdW+8mlQJ20ypb24drQBkhrwycxG3RApsd05V6C+tD7gzOsnwH2cObf/\neknmAA7CmeIUDSqjk7B9yyvQ7VEDPaBhqFUE7QeVcWVWna2PRkSImns51GdO\nc0LcGFFIeAjwZT7soBA+727+m12TYEEMdUokx5n1Oz/n92de8BSxPk5oCnbA\nJluR\r\n=Y6jq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHPQUfi7qZ4yg+z38aZn4+5fLgtNWX4TTw9iJm+c7krAIgfEjiGDUrOjZC4De5y36KPXsDFD8vKiNYq39bX4zq4dY="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.a9bafaee.0_1604615480273_0.648888665577096"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.184861ee.0":{"name":"@material/mwc-list","version":"0.20.0-canary.184861ee.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.b39094d14.0","@material/dom":"=9.0.0-canary.b39094d14.0","@material/list":"=9.0.0-canary.b39094d14.0","@material/mwc-base":"0.20.0-canary.184861ee.0","@material/mwc-checkbox":"0.20.0-canary.184861ee.0","@material/mwc-radio":"0.20.0-canary.184861ee.0","@material/mwc-ripple":"0.20.0-canary.184861ee.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=9.0.0-canary.b39094d14.0","@material/feature-targeting":"=9.0.0-canary.b39094d14.0","@material/mwc-icon":"0.20.0-canary.184861ee.0","@material/mwc-menu":"0.20.0-canary.184861ee.0","@material/ripple":"=9.0.0-canary.b39094d14.0","@material/rtl":"=9.0.0-canary.b39094d14.0","@material/theme":"=9.0.0-canary.b39094d14.0","@material/typography":"=9.0.0-canary.b39094d14.0"},"publishConfig":{"access":"public"},"gitHead":"292f005e510c59c9b761c4120c56e8c9854e4595","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/292f005e510c59c9b761c4120c56e8c9854e4595/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.184861ee.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-g00gHjlvcsfSQlGYuQS8Yuf01CrvpDFprlTQjmjMvujf/LfiP1/E37l/OZW1awZKq7eE2Ezc/9DKA00A1poB9Q==","shasum":"ced71fd7af8c52cb4fe85f54766eaf3c90e3ec0c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.184861ee.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfpexzCRA9TVsSAnZWagAAPG8QAKMxI6isw9iHYyuPT0cd\nV/WHiwW0uhGKyhIvPd9Q5409jdcxxJP7wb96rZklyQLFSHruy0War0wn7rnN\nXk6mPMP0Wyea6NmgA3+EPfm/LsGK0ouaNJUileBg9XjmUxYbENqnRWm3rwyS\nXjvKn3Arzpfcbl9a/ZERRp/PHFAgQOxYOTcP7UDDOX1+vU2IhQRdIJL+Vn24\nKybt0sQEJXLJmVkgqtH/ZHEDRYfy+jap9TUmUQzmUk+WTKlJBIRHr6qXp1Qv\nkdB0r7UZI179UwkpLFGO7LcGWmJGQkQuiDV6iww/87tNoVXXpG9P39kWF022\noQ54m6eH69MZg3/aZEBG9gse1MRzlcUDheATV89QAj9QGB/r9p0VZeQoakdc\nPTCa8Q6dbb5J2ut1RDSta3qaYOJuEjyvcThNJPJAnCxgKR+hbf4Q7AyiVh6h\nuF4Lza2+wR3MfX+ObhOwNfF+pB8kyLzV4ro7gg2rzfj9EoIy55Ko/jWU0A2i\nhMQ7LPiNgN8YLFTg1uGni4bHGdaC0pSZfQrpCVAaQJQnKGMBUZEtfKD7gh0n\n56go4b+z0nE5sa+Gc2TEUgJQ5ptX5TGA65D99t6B8MPePh1txVGGCmCXgLV4\nW6YiviwwOY2yN2OxeTgjDpLy6zLWMH08LC3MEFiPSm2nThsMrsalythm2apK\nwTyx\r\n=SAnw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGGUjx9iG4BCgypMoozsNEWytWnvuMJekATlqjlJSqLmAiAA7mSUtPTUbs49Lgmi/IcHN8dmYp52/g/CBDVH0Vhz/Q=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.184861ee.0_1604709490512_0.7027345202713933"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.6c6ae2d6.0":{"name":"@material/mwc-list","version":"0.20.0-canary.6c6ae2d6.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.b39094d14.0","@material/dom":"=9.0.0-canary.b39094d14.0","@material/list":"=9.0.0-canary.b39094d14.0","@material/mwc-base":"0.20.0-canary.6c6ae2d6.0","@material/mwc-checkbox":"0.20.0-canary.6c6ae2d6.0","@material/mwc-radio":"0.20.0-canary.6c6ae2d6.0","@material/mwc-ripple":"0.20.0-canary.6c6ae2d6.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=9.0.0-canary.b39094d14.0","@material/feature-targeting":"=9.0.0-canary.b39094d14.0","@material/mwc-icon":"0.20.0-canary.6c6ae2d6.0","@material/mwc-menu":"0.20.0-canary.6c6ae2d6.0","@material/ripple":"=9.0.0-canary.b39094d14.0","@material/rtl":"=9.0.0-canary.b39094d14.0","@material/theme":"=9.0.0-canary.b39094d14.0","@material/typography":"=9.0.0-canary.b39094d14.0"},"publishConfig":{"access":"public"},"gitHead":"38ecce3da3f921a8c45ce342e47456c702623761","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38ecce3da3f921a8c45ce342e47456c702623761/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.6c6ae2d6.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-UpRdtNPD0FO+bX+UhvVV8wwDlqBwoWrGkrWjKysg1K72uRXP2SofR9DV+gSCmAFYU/rzZRd0V1GMc/DFCmd4RA==","shasum":"b103bedc38c63d40dd2a22a2a8bdae46d339bb8c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.6c6ae2d6.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqT7TCRA9TVsSAnZWagAA7yEQAJijz9Vfzhkd9cA3P8Rk\nqwfpKvx9r9yuPnNb00w4b3XU7AxlH6xKKb1UPbeIOh4NlkdAGodF6Yx49sRz\nhNqMxrc/FESHcpijJo6Rrd+KKSpYomVgqEtijLuk3OGpW6BSWNVF9Rdy6RP+\nGbC1nzRchuGcc8M+yXyJp2dl3Ozj7x7V+wsqAIOzkxHLSheuawSIErbIj2le\nrmZ7BPF10z19sTiJP3s/uD+68y5X41PaFtOZLWnRWon++l3G7REGldHalReo\n8RAZrRFOxT12bPlnStGNi4pIztmA+udhOuD8gwHXQXCWDHME81+tIrXY18+c\nb1MyBZtOvC8+YnTlMCVrQJdfZBpD8gr+Bev2thGdidpEi57YUEJ3JDlcdmIk\nyZl2mHU4QJH3RF8uuE/jBY5Xa3eLtuU6vntpjsnNHf8sB6AredrGfS7e747B\nFy36v8rI3nCwtCPraoyxs1ir1xTD15WF8BGbeKV1GaAATJZH77iGbLGYW/6T\nh+7BTxyfFDbDtKMxvFIVrnNAR1sVVfRHmR/dttGz7y0yvd7fR9TElbqcqr5I\nDpgW35BeweS6S/sCkiuSTrHl6l3fDX1ekEksSfG02kgXVD9HDT9jFuFdnpCN\nqC7rw5TXel/LUyXBAJSLRbWJTrEHUyweZ8e35tvalJwpWYmjl6hap/ebLHjG\nIbbD\r\n=omu7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHbi2WTE4PfaUHkNyEreIsyG3GOkf34Erk62pd0Um1sTAiEApXgUf2DSJG4h+BKXtwZqzOQcg/oyyH4rrp5OoI6GwJM="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.6c6ae2d6.0_1604927187008_0.7757572445754068"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.ea2aa477.0":{"name":"@material/mwc-list","version":"0.20.0-canary.ea2aa477.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.b39094d14.0","@material/dom":"=9.0.0-canary.b39094d14.0","@material/list":"=9.0.0-canary.b39094d14.0","@material/mwc-base":"0.20.0-canary.ea2aa477.0","@material/mwc-checkbox":"0.20.0-canary.ea2aa477.0","@material/mwc-radio":"0.20.0-canary.ea2aa477.0","@material/mwc-ripple":"0.20.0-canary.ea2aa477.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=9.0.0-canary.b39094d14.0","@material/feature-targeting":"=9.0.0-canary.b39094d14.0","@material/mwc-icon":"0.20.0-canary.ea2aa477.0","@material/mwc-menu":"0.20.0-canary.ea2aa477.0","@material/ripple":"=9.0.0-canary.b39094d14.0","@material/rtl":"=9.0.0-canary.b39094d14.0","@material/theme":"=9.0.0-canary.b39094d14.0","@material/typography":"=9.0.0-canary.b39094d14.0"},"publishConfig":{"access":"public"},"gitHead":"44e884f1fa66508713a0632b0fd8052b5a88aa77","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44e884f1fa66508713a0632b0fd8052b5a88aa77/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.ea2aa477.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-W3H+KY4E/oBEdLlUWab5QvX7z8zdieYVeqb7hZDMqZuJchVzpoOBvPnEuOcZwE8w4Pqznnnp7xas341p/hOWQA==","shasum":"8ed078df9ab1e998cca2b1772c37252ba59d8fa7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.ea2aa477.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqdehCRA9TVsSAnZWagAAtJcP+gMFKD8ED6YJ2YD1dB6p\nmpkyGRCy2XkA2H4+IjA7a9T6Yf4sw7pDFZ/g1euAR2GTnjwEDcLiJ2UGsPPV\nEItVIp3oDZBXRXXEDFtLNy3bHmdU0uMg7US88omRhvm6EySffo5bbqki6Bm/\nuboDNilAvuuQ+GQxhGC+AVv4f0WpyEVnNVkTS/Q5v5pyzCxsYOyqyjHNDUoh\n2CIIFAjkULytmjIy3YpeIc3OzvGC2PvLQiGiikvyLSBw/HSe89LTt4NJ27li\nVPSXyn+Djw2Qwn3v6vu53G7YUCvPR1BIRoeUNoFYmhQWlcDV9nDKFkLImFyF\nyLXVycsJZVM/g630PCkJX+5Mcbh+m4jj6l2+Oo9E4+CKs4Vz/b7vaY57lPav\nbJ81Lx1EwI/02shk4e3t26RFLkJi/B60THnS27GYXwj/NdtbMUS8MNurhCx+\negM2l7JAzSY8o3pt4ARKjY3UGO81a1w43ZCGooDjLB9zQ5a7mLq6G+qSuiDx\nXVaQsUqTWWrlcOl6CaDZjNt75GFmp8u6GVeKVtu/JdB8/ZNBTldKI9t8eg/E\npnKFEvK36mrGd883dnopC8CtVyw5MAoBMi/ANISWBObI2Q+yYnfztscdwccr\nV96vaIlFbXxchrSe6qowt50xzPzfNYUqvYgE/R0OvVo7M34AmX2kfZEm1lxR\nVSaa\r\n=j7R3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID5bL/MbWrGOiE4FeVJHHIjWvNy7m3O6m5nMChYsQN15AiBOp8wkvYdVE7rPjP7lQDD5DBzeHnAxyXnD8ZX101kjPg=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@google.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.ea2aa477.0_1604966304854_0.5231232152830965"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.a2c088dc.0":{"name":"@material/mwc-list","version":"0.20.0-canary.a2c088dc.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.b39094d14.0","@material/dom":"=9.0.0-canary.b39094d14.0","@material/list":"=9.0.0-canary.b39094d14.0","@material/mwc-base":"0.20.0-canary.a2c088dc.0","@material/mwc-checkbox":"0.20.0-canary.a2c088dc.0","@material/mwc-radio":"0.20.0-canary.a2c088dc.0","@material/mwc-ripple":"0.20.0-canary.a2c088dc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=9.0.0-canary.b39094d14.0","@material/feature-targeting":"=9.0.0-canary.b39094d14.0","@material/mwc-icon":"0.20.0-canary.a2c088dc.0","@material/mwc-menu":"0.20.0-canary.a2c088dc.0","@material/ripple":"=9.0.0-canary.b39094d14.0","@material/rtl":"=9.0.0-canary.b39094d14.0","@material/theme":"=9.0.0-canary.b39094d14.0","@material/typography":"=9.0.0-canary.b39094d14.0"},"publishConfig":{"access":"public"},"gitHead":"60aecd658763ef0aa8ea8055ed91f03f6d3697fa","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/60aecd658763ef0aa8ea8055ed91f03f6d3697fa/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.a2c088dc.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-zjpZmoylYssAVLUq80j7ycVilVGJqv2RB2Sx+CumFqex3+fRtoYQ27bAJtN4XhBU5HiQSTsmIsFDhsxPdhwZyQ==","shasum":"40bcdfce2d670b4c40453fb3962fd1eba051bf7e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.a2c088dc.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfqqKyCRA9TVsSAnZWagAAPwgP/j7JTgM/DZp+LrefavIi\nEN/6OCIVR+78vhVsHtwrCsLZBRh9xPovBqpE1ec65jq8D1dVnnif6EP+pIrE\n10VuNXPZvfWTMO9MaZYemPmBszAwyqJMQg3feCoh7IkQBxP2dFRuTPJc8J3i\nrTkb3oyzQhKvso8gkxh4BWlBWjoQVqkD+fhLXkaAV0B57dBGAd8h+l2z2Rq3\nvfBYZF/fFYFEvbL7r7+Ow5/kcxQ3Y4H75ZZLBSHIx7d2uNjw9F9hQx9TkW2m\n6BVEei0vr9LBatidTRhu0iETDonvl0y2xWTyc3yvIzkmhd4NteZttG+NAl5X\nElSwxGy+cFlQQ95baE/200pRUEk/cH3DQr/nfD/uLUNt6Cgrb0SZjpxIITwx\nMFTGZ332O1clmoSBhzkzQx+Rb/48YGOOXClUAb9uQoosL/sysQLZ7aitBriY\nPE9d0Cu8ED5tCxMFO2/sMdVteIDZq7dRcoJJSa3MGUWckTEsSASAMEYaFR50\nAXFuCLv3Ekbhf9Y4nU2LAeNoSbD2Gkh3ngfPi/EeYXFjjG0SKEtr5pk0AXpJ\na6q9kELpSg54pjStmMpHpUVy+zHCsanf8HD/IcRCrjf257Z655TOLhwtZj6M\nWSVvmCQrc/KMn4hFoMuZTBFyO3VEd3BwwwOcIkXbPlddWRu//wD1NgYxHcHS\ndpkm\r\n=Gunj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG1NQvQTr1/yAyFI6faOjQI/kxBX6Wd19HcUxemLdwRHAiEAn7AP8EJ8vMid+L8Ok0KuAJKrkpWoCmRX+fZearyI5hA="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.a2c088dc.0_1605018289635_0.17273365521259088"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.b04d71d4.0":{"name":"@material/mwc-list","version":"0.20.0-canary.b04d71d4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.b39094d14.0","@material/dom":"=9.0.0-canary.b39094d14.0","@material/list":"=9.0.0-canary.b39094d14.0","@material/mwc-base":"0.20.0-canary.b04d71d4.0","@material/mwc-checkbox":"0.20.0-canary.b04d71d4.0","@material/mwc-radio":"0.20.0-canary.b04d71d4.0","@material/mwc-ripple":"0.20.0-canary.b04d71d4.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^1.10.0"},"devDependencies":{"@material/density":"=9.0.0-canary.b39094d14.0","@material/feature-targeting":"=9.0.0-canary.b39094d14.0","@material/mwc-icon":"0.20.0-canary.b04d71d4.0","@material/mwc-menu":"0.20.0-canary.b04d71d4.0","@material/ripple":"=9.0.0-canary.b39094d14.0","@material/rtl":"=9.0.0-canary.b39094d14.0","@material/theme":"=9.0.0-canary.b39094d14.0","@material/typography":"=9.0.0-canary.b39094d14.0"},"publishConfig":{"access":"public"},"gitHead":"6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6c9d3a1dee5f50ad7d82b0f0e59f7c21d9524452/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.b04d71d4.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-Y2juMIs/9IdYrRS4wBrNxZ6h36TMfF8aa/fP4+ix+3xJGPpZw7XiFYlAqytMTDwR5Pd2SifuAvOSxOu8my5aGw==","shasum":"583156a9ca8585530ba6e2fa6a686dd4aa1f2413","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.b04d71d4.0.tgz","fileCount":45,"unpackedSize":240450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrRGVCRA9TVsSAnZWagAAkP4P/1l/jQuwyVq9xAON3yLq\n9Ift3vStBoINvoG13/dby1tAsNoWmDm8hX7Au9NuV+GfC0hWwwv0JYoyYLk8\nHhcAP0cowK2jtop3i0muoJZJaD0pNN27EFG0qQBCLI+pZrvUN9b7wa5PN32O\nljbdfPCB1NkA13U1baH2Z38VRMczBsFXZT0KTuzsr3aVprLLlgE7vzt/oOrT\nxTU9ixK16oG1WhFdP5NZxUCIeKtTt2DbP7i1r4qAIUQltAPkUc4OUPF2n1Sm\nQLSkHmgEAyUn3wsd3eNjPMkB956s5FJkrUfv9Jc5ojcwE9b8Ecjqe8Gfad78\nmqT7VfKG8RPifQddSbJW/ZyZuYehOTkh7dmFkR5SFfSNC6xhNqmtv4DoH7N9\nOV48EiAKJlBADUhcoyoZu/bErUTBmj8hu628yZBl8OlbGPP0a2t/fRtuqs99\ng0uKq+VJEK8BcB8K9DyXmNEUhOTS7N8BCfENN40a4fLKElaIEkQu4pcrYBFg\nr2J7kZVN0CwTC8xDXq3rv3S1inGrLmFr7qRIyVnMU4XZ0nN9ohJGI0E6RqJr\nchFOv1SMcTqkhTmhekBH0TU1g8zhrLQBMdgVmkDZmKedmM4Kc0APIBsQ+dRg\n2xwPymwUhb/ARbDKovy437Ptnsk1TBG80MLTvGiqtUGk9GsqgAWhwZUDYNxa\nt6xn\r\n=s2u0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDKPfhkKu0kLbfPe3+N51UnlBmudN+0R+R65EGvhQdsyQIgHobXA9OjrIf6mrz4h3y+eHqEKMjd58RI1lmLJll82ag="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.b04d71d4.0_1605177748825_0.48437194526488003"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.2c553352.0":{"name":"@material/mwc-list","version":"0.20.0-canary.2c553352.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.b39094d14.0","@material/dom":"=9.0.0-canary.b39094d14.0","@material/list":"=9.0.0-canary.b39094d14.0","@material/mwc-base":"0.20.0-canary.2c553352.0","@material/mwc-checkbox":"0.20.0-canary.2c553352.0","@material/mwc-radio":"0.20.0-canary.2c553352.0","@material/mwc-ripple":"0.20.0-canary.2c553352.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.b39094d14.0","@material/feature-targeting":"=9.0.0-canary.b39094d14.0","@material/mwc-icon":"0.20.0-canary.2c553352.0","@material/mwc-menu":"0.20.0-canary.2c553352.0","@material/ripple":"=9.0.0-canary.b39094d14.0","@material/rtl":"=9.0.0-canary.b39094d14.0","@material/theme":"=9.0.0-canary.b39094d14.0","@material/typography":"=9.0.0-canary.b39094d14.0"},"publishConfig":{"access":"public"},"gitHead":"7a02baa2ba85467edeb67014cb8c6e5bba77edec","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a02baa2ba85467edeb67014cb8c6e5bba77edec/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.2c553352.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-iYUfhDMZXZvZnB4oiPt4k9eTcPTW/PxTyP4sL+iSAvBFjMv3PbEU0R2r0uVsZzuqkpDs24RQJWR8If4im7BAjw==","shasum":"149b83e5129bda35a0d85edb6dae3b7ded5859cc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.2c553352.0.tgz","fileCount":45,"unpackedSize":240449,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrbqHCRA9TVsSAnZWagAAwCQP/1rZGpXOqiYFeRCaBjyy\nQW0Vj8Prbsh3pTeUZ6CeHCopANcbLla1M0Luf2qZeiHJNO5YyPif4huIBbaS\nGpBu0CBq59bGtaHFoDf4cX4LaAPZYT+b2HSw3xf/B1W6rAJzIkyrsydnFP0X\nVqkes7UulLaqmML2+aRPyQdnCVxPWEMLYM8BMJ2iBI3+dgpN9hESiXMHvcgJ\nCq5v0FnmCcL6vYezDcF3u9eyBXEzAWMkBCLHWdIGEsU9HhUSg1xx+RZzkrKo\nkIDs0WgROm8asu+ummWjZ61Bg1GGjlGGOharpQ/Rt0GAglsIVlgkYpvpJdD7\nbvVOk8W+Lkl+g1003vmlw7//+3qiPpdbjXfcd+qI/qqQXxeM0tzZGHojbFZj\nXfCCGSRpnCUjl1XJ4N4hsbwtm6nb0TTK+L6AydIREy58q7Aujp3vpzZSWRU8\nJIFY1NsWrZKhhCFPowkOQaub1TiwwD13XYdMugkMjNPQONOKAFovwt2f14hn\nVpHGu9UxoQoURfKeAFFWbgRP+a9drro9f2AqCxjmVUK4jXubm6tVK1dA6AoX\nGWrLarrYwvt3A89nGzy5NSPGPItQvApQJpqNgbP0Et13MDt8lfPgwXCeRCjf\nrOEA+Pd2Wa1PwYJ4ZUDXZKf70/uFCvZmksTzkrZ+eYMOQLDdTb1qJ/VkoliL\njvE0\r\n=PsqA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmbGNEw41RHs2AaKcQOrvOrvlLwjhGXk5SgWc6HI8tcwIgEKGxGndFDJzQLHDEd4iu6rklpsue95COUx4d/Wt6MJQ="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.2c553352.0_1605220998930_0.4606500763149366"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.6560d19a.0":{"name":"@material/mwc-list","version":"0.20.0-canary.6560d19a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.240c5f74f.0","@material/dom":"=9.0.0-canary.240c5f74f.0","@material/list":"=9.0.0-canary.240c5f74f.0","@material/mwc-base":"0.20.0-canary.6560d19a.0","@material/mwc-checkbox":"0.20.0-canary.6560d19a.0","@material/mwc-radio":"0.20.0-canary.6560d19a.0","@material/mwc-ripple":"0.20.0-canary.6560d19a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.240c5f74f.0","@material/feature-targeting":"=9.0.0-canary.240c5f74f.0","@material/mwc-icon":"0.20.0-canary.6560d19a.0","@material/mwc-menu":"0.20.0-canary.6560d19a.0","@material/ripple":"=9.0.0-canary.240c5f74f.0","@material/rtl":"=9.0.0-canary.240c5f74f.0","@material/theme":"=9.0.0-canary.240c5f74f.0","@material/typography":"=9.0.0-canary.240c5f74f.0"},"publishConfig":{"access":"public"},"gitHead":"2b2093b7a8ece484614a94718cdac5a72d7e9cfa","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b2093b7a8ece484614a94718cdac5a72d7e9cfa/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.6560d19a.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-1oFI+7ZQ/HgEWH1ca88rXQEggHP+9qQsM/sYouRR6neEjkG0j5gmILTDjDZNoW3D1EUpeJAABLLcarAxPuhr0Q==","shasum":"bb32247695f45308aacae29cc2c6d41452af1301","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.6560d19a.0.tgz","fileCount":45,"unpackedSize":240449,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfrvE8CRA9TVsSAnZWagAAOwYP+gIPvTi05H8FI99O0OXx\neu/MoTdw+ii5WPoLX2ucUtRkqllOanmHjFcFuklcUZFiAoBvRuzh0lbGbsON\n6q5teaeNwlbdvdlwq8XguCeR2eh8mOFKPlh9f2aNZrnXaGM6if5UzfSay5UT\nQfkGDfAyBmft6UyiE0x+TTHjwhzKhohFkwGQdH3z2b55hwxbC5dmd0KQ3BXc\nDESUPrC/PINGTE6vOgfhWDP/DTuln1NXPrFDQKJJzG7n38AGpRVOXp8W47YC\nlf/7JdreHkZ2aD0CiS/icgakBxJAIFSZphogpj4dpgvYiWQdB0jGj9jXbzLV\n9nD03wTVfNEOfvZIaFBX9BqtUBr5XBk5dcKscw5Iqz8ht7okova21ef7P+i3\na20DxyrhcIWqm8wdaRtvxC7Fbi9rBKb6fHN65MuKzpciUPaMGXVSmVaN6rRp\nhMWqLF0K4eukjNAyGefHm+Zrt2XD5bmyZpA8S817qL748MRbUTRbjudiD4Vr\nu/tm1W456gJ8yfiAmVnZWq9G6idLzrSUsvx0W3VmCdssH4xqQwghGS4lTq2E\nxi90qYy2VkpCdrSeHMEB8jg1R8SdecChJFnKAKcEeOd8eRgDd8bwCVMdNlG7\nDo9XGJusN6OnybqDq2N0zNk3EAepBSJsmyUxpmTDX7ZvmgsLFAyCP+SbeBur\n29rU\r\n=yQcL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB8e82Bi8xJ7YXow0s6N3CocPoDKiGOIWWvY93ICIVnQAiA7CTh68jfmyaJNgAHj7KGVZpauyoEdb8GSLeRArXoWrA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.6560d19a.0_1605300540418_0.008545831263954806"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.a28d5ec3.0":{"name":"@material/mwc-list","version":"0.20.0-canary.a28d5ec3.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.240c5f74f.0","@material/dom":"=9.0.0-canary.240c5f74f.0","@material/list":"=9.0.0-canary.240c5f74f.0","@material/mwc-base":"0.20.0-canary.a28d5ec3.0","@material/mwc-checkbox":"0.20.0-canary.a28d5ec3.0","@material/mwc-radio":"0.20.0-canary.a28d5ec3.0","@material/mwc-ripple":"0.20.0-canary.a28d5ec3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.240c5f74f.0","@material/feature-targeting":"=9.0.0-canary.240c5f74f.0","@material/mwc-icon":"0.20.0-canary.a28d5ec3.0","@material/mwc-menu":"0.20.0-canary.a28d5ec3.0","@material/ripple":"=9.0.0-canary.240c5f74f.0","@material/rtl":"=9.0.0-canary.240c5f74f.0","@material/theme":"=9.0.0-canary.240c5f74f.0","@material/typography":"=9.0.0-canary.240c5f74f.0"},"publishConfig":{"access":"public"},"gitHead":"f24283a75330ef6de8cd16f8373ab1bba0eabec6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f24283a75330ef6de8cd16f8373ab1bba0eabec6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.a28d5ec3.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-Hbw66UsTT/zThHkzQ21Wyz/gXOBOkKEnmKE4B9XzqTz2VLn4Dekm3fLoV7y1UrYse+6VTF82MA7ZIxp1EZHRPw==","shasum":"a3a6691d4e724d5c16cb20c895d2c8b0669db3dd","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.a28d5ec3.0.tgz","fileCount":45,"unpackedSize":240449,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfs+s4CRA9TVsSAnZWagAAQi0P/jPYHmEhcMKQxH/QL5Ru\nC2EMtOesqumtaO8wVKAblcgi5SFGPzB5ZLOPYsNF1RywqBJ9wcVuiBg9J6Ed\nzsAMlkMr0bU5DQ/3nGa1fpL8/48dKGZ7IpUfY7YnJM6Ih4kMEWewABGNs9WQ\ni5DUsKgRXrr2LLgo688Ssl+qMjZKxD4cdGJzAIfmg85od80TFsEQoXkArHKN\n5xbfSVAa9roXX3peQBj8rCw1BsOea/YbGNvrrKFLKxbavzx+FISGJcK441d7\ncOdAj58bJkNbQN7nhLLut7rSpoQOCM2ggWwQRLLU1OeaRCW9BUeww8fUbelc\neVPbg+AxTwiMUQbnBRnHDAIqxF48FDeM1Vo3LkEKJSleY3do+oqzR/2Y3kgv\ng786rGoEXPCEmGUasbrAPkz03qaq4K3hjMNITdTVHhFyvl3BALj/1yZWKcG4\ncvLCrbDFLqB+gBT7i2nc3AfWnapn0BMCb11fHpF/023D3UMu3CuRu1phZ7+Z\nIwTVD5rpQp6mI1nrPit8Do1vdC2avzNGSMsnMzzYajxQU0odDNVkFa0Oj/72\n+gBIgNZ+SiXpNSzfzzdTsjQkgdSEDLunu4ujdyNRfkvudJu/4GYlnPGFyTaq\nWrhjuq9h7ug4fN/iQ/T0NuFVl8LxLfHH5vuMPgSyRIaNwdiE3XknrQXYHGhl\nIiAJ\r\n=gXzh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE6u8YhXjTtB/mBSc8sX6hQ435+Ol0wGmk2IcGGZQ8s5AiEAuvXWoUslOFWyY5mv/CTdAJansS+mYpDezPenDpTvBgI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.a28d5ec3.0_1605626679882_0.920295765732398"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.03e7e778.0":{"name":"@material/mwc-list","version":"0.20.0-canary.03e7e778.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.240c5f74f.0","@material/dom":"=9.0.0-canary.240c5f74f.0","@material/list":"=9.0.0-canary.240c5f74f.0","@material/mwc-base":"0.20.0-canary.03e7e778.0","@material/mwc-checkbox":"0.20.0-canary.03e7e778.0","@material/mwc-radio":"0.20.0-canary.03e7e778.0","@material/mwc-ripple":"0.20.0-canary.03e7e778.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.240c5f74f.0","@material/feature-targeting":"=9.0.0-canary.240c5f74f.0","@material/mwc-icon":"0.20.0-canary.03e7e778.0","@material/mwc-menu":"0.20.0-canary.03e7e778.0","@material/ripple":"=9.0.0-canary.240c5f74f.0","@material/rtl":"=9.0.0-canary.240c5f74f.0","@material/theme":"=9.0.0-canary.240c5f74f.0","@material/typography":"=9.0.0-canary.240c5f74f.0"},"publishConfig":{"access":"public"},"gitHead":"b828c4befe76e485a57dc3be64c348c56f37f89a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b828c4befe76e485a57dc3be64c348c56f37f89a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.03e7e778.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-N1RnFzgm9tty0Tc0QLn50FXqWzMmrqGqsSpA7WlDFgdEttw7bN5lMuuT6VEIce2V5JHk3+1OwVj5265JmMillQ==","shasum":"e32a50abad42a3caec97eb9c16f39e45cf90591d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.03e7e778.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftCP8CRA9TVsSAnZWagAAIfMP/2Y0nox6u193+kAnfGxc\nljD6vrXCx4EQCIvOOCL3b6jmMzKxbKz/bGqEcezz6rUJxNdxpKtss+5r3zAt\nAw3DQgS7hxjcjp7+03kV5c1jFpFwQ8ctuvtmzqrbJfYZ/CiRVaPZcHjMhih5\nWxgfzgdskq9TVp9FQN78XZ3yr8O7Eonji86yauv0Z9pF2EOZtfj7JEkMehyj\nemTDkC3GdE2UXZ1cV3ZQbNJsFcoj0cU2EQN1YYjTKk3mM8t1UmmB+CIonwyY\njks0dNbBRdDo4KWCDSpqI4OCD12yYiwT2HK4hxBMNtlyCoYJ6sNFOlmOmBxP\n8IOZKdd9V0Jinw3/yPJpoU1VthPAlDRh8VS1qQGO0iHSKNj39niPJlnNtJGL\nzFT2Ygj6z2UyNQF6VqMzNBQ67LZ6Ej+xPyzPqVweOjzk0za0btxk86HxFJ+s\nnW/vz/XIz92FVRoWv+1AROprtRlK36q1hWVZjn4rAcxRKUctbjjcz0Sb5bAN\noTP/qw3QddeyI/89VQXMKnAEnY7FHeEs2mlRYqyUFs9c3kkGbTJgAUfmGGpO\nRGim+xjf+evKJL4+9s/yT0QAYTUkxkr3adcRapSRfxnUHPPXiOqaf29z8VRb\ng+v5N9kHvNExMQ8ysHK6nLv+599LbeNUVYNpQL1z0gjRwKmn+FciVFtOKTze\n4O+o\r\n=5A1t\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFMmkk8Q63AyO6b/pi/SecaIryrQW91WYFIxhGAfv2s5AiBqPn7qx4ox/MUdsBDUnZvN/0pZrbri3iHfupkuskOWBQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.03e7e778.0_1605641212359_0.43563440566870026"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.ac8ed597.0":{"name":"@material/mwc-list","version":"0.20.0-canary.ac8ed597.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.482ff9091.0","@material/dom":"=9.0.0-canary.482ff9091.0","@material/list":"=9.0.0-canary.482ff9091.0","@material/mwc-base":"0.20.0-canary.ac8ed597.0","@material/mwc-checkbox":"0.20.0-canary.ac8ed597.0","@material/mwc-radio":"0.20.0-canary.ac8ed597.0","@material/mwc-ripple":"0.20.0-canary.ac8ed597.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.482ff9091.0","@material/feature-targeting":"=9.0.0-canary.482ff9091.0","@material/mwc-icon":"0.20.0-canary.ac8ed597.0","@material/mwc-menu":"0.20.0-canary.ac8ed597.0","@material/ripple":"=9.0.0-canary.482ff9091.0","@material/rtl":"=9.0.0-canary.482ff9091.0","@material/theme":"=9.0.0-canary.482ff9091.0","@material/typography":"=9.0.0-canary.482ff9091.0"},"publishConfig":{"access":"public"},"gitHead":"324571445f4ed0575cda7f727c54e156bce8d624","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/324571445f4ed0575cda7f727c54e156bce8d624/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.ac8ed597.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-4I2UEosNtfyjx6pQLNEOUGtzmiJ0yFJT3sLRXeJLn8c7mHaUZOQUQkuoVz19YoBstns4JAI3hEAOJ9ynOgysFw==","shasum":"2af9166e3dfd4942564283115d80afd7b5e21731","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.ac8ed597.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftErMCRA9TVsSAnZWagAAIoQP/RFtqUGl7ueKfiQ6QGQp\nPHLH4svBJbJdgKuz57uuTzmpSscfwtdcUDV/KptlN+/iBoc0CCfFT5N64R2F\n60NWKL6cCBeafHlHbESUtuAbx+ZijSsU2oqC7lmWrdTaeUsxFu4oecMWzWmT\nADaL28U0OnMzGhI0WsuhXy/DHfHcSwjr8gKDevUTwE2jEfpleT8n1fLFrNK0\nodBOVPJqkefC493vTTiGWWeHjWBfbX+AJvKKMR4CNiydKWPHlwtX5Scl/UQl\nSpwOC9BqND35sFeytVzAYhcXjSknLrmeQsDaKQYsiPg/Nk9v+dRia28F+wrA\n2mkIvAmWpF5sSGpTdLq3ct8MG/qxBTg7LTmLjqFMr/jwR95YVRGGke79VTlY\n1idj6dPQbc2XnDmIMNUqI8+hlKlNbiSJ685GpXvP6TvPT8h3IFS8jW4NfIZy\n02dvJTOgwFirTN557IExlZOtwGUeJdZnli6Cuuib3X8XcRLCHM36RalCe9Xx\ndw/chTpm7DWO9JYOmSrLFvNDkZAHjs1ki3iEP54bdBcErw6xCbtzN89JNvA2\ngbIdMFd1Xez/k3VRbZil70KBfOkwB00qQjUtU8Iv4aumIrSTTuIKsj0i2I4O\n9UW/M4YVll23A9UAQ5qx2AEQyWO/WFMhYi0DVTs8NrtFml9bJbq2+HdWDMFP\nGgBq\r\n=sh1x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZJfy03LOrZ9+40vxDdzRXUhTqgGqwhmb+XKVD83Cz+QIgWRKl0UXyJOFxHivG538xQfm5h3OHujo09x/wRNvoBiU="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.ac8ed597.0_1605651147605_0.2013003176905399"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.b6a60f60.0":{"name":"@material/mwc-list","version":"0.20.0-canary.b6a60f60.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.482ff9091.0","@material/dom":"=9.0.0-canary.482ff9091.0","@material/list":"=9.0.0-canary.482ff9091.0","@material/mwc-base":"0.20.0-canary.b6a60f60.0","@material/mwc-checkbox":"0.20.0-canary.b6a60f60.0","@material/mwc-radio":"0.20.0-canary.b6a60f60.0","@material/mwc-ripple":"0.20.0-canary.b6a60f60.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.482ff9091.0","@material/feature-targeting":"=9.0.0-canary.482ff9091.0","@material/mwc-icon":"0.20.0-canary.b6a60f60.0","@material/mwc-menu":"0.20.0-canary.b6a60f60.0","@material/ripple":"=9.0.0-canary.482ff9091.0","@material/rtl":"=9.0.0-canary.482ff9091.0","@material/theme":"=9.0.0-canary.482ff9091.0","@material/typography":"=9.0.0-canary.482ff9091.0"},"publishConfig":{"access":"public"},"gitHead":"423d1aee62c72c8c88e9e5e792712bc5d4d10b13","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/423d1aee62c72c8c88e9e5e792712bc5d4d10b13/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.b6a60f60.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-zXfMuNV+p5Qn2pM9B5pEswHD/ELc61s2qyeXgXoqNtJxWLbJ5dfcl9DKN0bEhgJ0DgMJ6CXoi9OUPo6CiK+AKQ==","shasum":"f59644c8e04ade5bc791d988ed3ff5052412228d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.b6a60f60.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftFRFCRA9TVsSAnZWagAA+aIP/0L2xKWMXCHPNJ/2Gw/6\nkecROgx/5nL3PfOkys3DIBVbaJoLC9hdyHuTR2RhOFX6JnKP/ywB2N/dBzeu\nB9isAadvEoKkWFzvVRHcYX+Rau1+aAB8K0EtM9YyCPRoR0hNlPyR0PeZ0rzi\nJ/uXcUcxsesJwDKAaJqAYiCRuQT0uasRPjiHCIBGWP2ewE+WytpB8L0A0nFB\nc6x3xK2TERGqEPh01ThjM2bX96z01wYq4U5QwrbZ3xmLUCKuEZ4cmd6ty7t0\na6cznek9HS6z8h2etZ60bvnjCwxTtsp/2AyzrzSM5Jabb36vcclp07n/WUiS\niXsSKjgXXHDiEFSk+yrqu7EAOV6vWjkkeEz/XIb/C/6+ci4mWnSWs8HiI4id\nfLgZtelg+kbLZMvFwT/oKe2YwB1nYzPmqu2RbizLG1JqyVPJQOub7kebhzN1\n0OxeqFtQcGUcFNgDW9ujIW/s5hIEkL0Q0ZNQrnN6Stj7NNuAuCKRT3hG3YWv\nYDmLNHKuYoPd+kH02fdknBf+HrRJFT3wGTLqlIHjgpngr8hn47NVyjilZkXu\nRYBXgL2awWseDreZQ9NWj/DXiQKs45D5eTLnlEtA/UgMsf4q/LGjBhta7X9q\nxH6NRTcFQ+BxyRG9q5gVbAOey002aWk9wsRk2/q5RUetZ9dXJeSiqKGsnuRr\nSexQ\r\n=J5x/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGhrL2uixoXn3ieAXBRvYO4HHp8cRB3Czb0mkCEAtu4aAiAT6LysT6GyfgxOaD5N7EnBkozE9WlNhjFZ15lbae4Z8g=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.b6a60f60.0_1605653573459_0.7500505386996899"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.71cc24fb.0":{"name":"@material/mwc-list","version":"0.20.0-canary.71cc24fb.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.482ff9091.0","@material/dom":"=9.0.0-canary.482ff9091.0","@material/list":"=9.0.0-canary.482ff9091.0","@material/mwc-base":"0.20.0-canary.71cc24fb.0","@material/mwc-checkbox":"0.20.0-canary.71cc24fb.0","@material/mwc-radio":"0.20.0-canary.71cc24fb.0","@material/mwc-ripple":"0.20.0-canary.71cc24fb.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.482ff9091.0","@material/feature-targeting":"=9.0.0-canary.482ff9091.0","@material/mwc-icon":"0.20.0-canary.71cc24fb.0","@material/mwc-menu":"0.20.0-canary.71cc24fb.0","@material/ripple":"=9.0.0-canary.482ff9091.0","@material/rtl":"=9.0.0-canary.482ff9091.0","@material/theme":"=9.0.0-canary.482ff9091.0","@material/typography":"=9.0.0-canary.482ff9091.0"},"publishConfig":{"access":"public"},"gitHead":"04fde8dbd7934f14927b0407ac285d7396fe68e7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04fde8dbd7934f14927b0407ac285d7396fe68e7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.71cc24fb.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-8yl9+LidzjAa7gGVzxvQPrWjHGna2n68KwmIKeYK30F7btmrSDngz2Z8Y1zWlsSnfLzpEHlBKoD46bIvIOAfqw==","shasum":"e6c8747af871b62d85878e61c857390da2a877c9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.71cc24fb.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftFn9CRA9TVsSAnZWagAAtLgP/2jZdSkGAu+tqeLvYUL8\nExPQGeqF2nXoPrZPXtUJmOhlGmoS1ThPgGdam38ZlDV3k870et7CMSFMoQsm\nUJImwqqrYglpq5dTZQmRY8aJydLs6nQPWW7HnZUxZCIAhV7tqi2MbgR4emWy\nVVmVA8lbjtjBA7z1RmaNdMRQJt3kNIingYeJzcgv9U7TiCUezxLVvLxGjHW/\nqf+BJXVcBkH6qhPMpXDYMN8DwaPZ5rk/97uvrJxshL014b1wRXZmLfHA3rZH\nAuLG/A5TW14grnK6GzgpQ2uYV0AcI9PrKZcxE12cLpZoaq30Q7t0ZxubCRK4\nKLne9XmRYwrPOZb2EtFuL73QkjY4I1aleltnuLzuQmdSm2atfoYLMqoRpM8B\nAOjD/vd4afSkxHUHsdOb3/2OBL/5tRDx9BfZIWy5rUiXJ8ma+k8an8fIYxxv\neSb82X26ksgzRwRxkgc4IeU+G0Nm7IN5ffLh9/mLlIkVdikpVI+4YIurIUY2\nE+sQpDIeatN99K+apOeyy7WZT5DaqdwfR81gosxFQ85RJExb/Rqz/gteJddx\nUIX5n8geo6m/DCwwakMGHg4UFM3/2KX/3FLKKXH/vnqnOaNS/nSLWcoBHS4q\nrkxKqXX5z73AImPA4cuGFKNjV4gTPnapMQRKFRB/jxK1UqlB3sYGKrjPIEzi\ns9R6\r\n=EyGz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBNBVcTLQZxiSJgotZIytnAzJwup+gN+8ZWnarffSnVSAiBZDXGHdfb7ZcT2pM+RcMulo93xkwYDMoKw68IlPqWqMA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.71cc24fb.0_1605655037012_0.3843401438502039"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.761027ff.0":{"name":"@material/mwc-list","version":"0.20.0-canary.761027ff.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.482ff9091.0","@material/dom":"=9.0.0-canary.482ff9091.0","@material/list":"=9.0.0-canary.482ff9091.0","@material/mwc-base":"0.20.0-canary.761027ff.0","@material/mwc-checkbox":"0.20.0-canary.761027ff.0","@material/mwc-radio":"0.20.0-canary.761027ff.0","@material/mwc-ripple":"0.20.0-canary.761027ff.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.482ff9091.0","@material/feature-targeting":"=9.0.0-canary.482ff9091.0","@material/mwc-icon":"0.20.0-canary.761027ff.0","@material/mwc-menu":"0.20.0-canary.761027ff.0","@material/ripple":"=9.0.0-canary.482ff9091.0","@material/rtl":"=9.0.0-canary.482ff9091.0","@material/theme":"=9.0.0-canary.482ff9091.0","@material/typography":"=9.0.0-canary.482ff9091.0"},"publishConfig":{"access":"public"},"gitHead":"eef81b2f51aebd88194386f191f7a40e504b6a70","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eef81b2f51aebd88194386f191f7a40e504b6a70/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.761027ff.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-DG1d1oXsyIXtGTAatVD6sAF7OmQeaLN96L9OdKKCECfoAimHy+Wvg+NyW1WjwRX09MKbUh+/jaVjxDG3qtGX1w==","shasum":"b2456338f22dad1cdbe3ddfbdac938cd31f22578","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.761027ff.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftZzaCRA9TVsSAnZWagAAs4wP/jUgezIeXWPFyssJ2jGa\nX4rdAtsA/MhrOs3C5+Jn8zjLWTE2pxrVpt2mJJhewSCHgB+1QU50wMuu4T0M\nEdLJNEqiVCKAC21NFWbdvVgyN4tXnexqSt173vJoQLkSxHynXTcnvJUhDuYU\nJq/2ZKf5F8WQR+Nc3Ea85obX/udjwY6R2aZVzWVQ2xejjpls1LoQ+4OOjhsJ\ncKC04K7psx+iNAX3j1P9DJSF/gfGFLEgUkb0nnRPn0WLZxthWFw2vgjIVBK1\nvl0i70foh94xpC+EkCsz+GH8/iDQjkjjnmmQR4/6z52cO5guCFzj7QN9A9Ng\nK34ASqIGgSzM6ZoWbV//LwUW25XOYEd4oJX8UPXezUwCHh8nBinRjFCTegL/\nTkKbpW9tQAUNJdJFBO7Aitfq/3kuQ+ILeDbvB2yxchAP85srxTMOJSDfNL4Z\n/lPHTV9p7TvuF1MDeSu6taR3IggsZChilKuwVKc5FOtfXBEu+SaAoZBgfoC1\ntlF10wT7GNiO9NuAaXm2fXufi1pcFowPnpNpvZtCyeRQCjc2gJqNaRpn0Fse\nfZsBaCLHmjUVQefw3G0Kb+f6MiGl+G7CqDQy0ZKn2BD30AETIDRt3ska1Ks/\n5LEBVrSXrCGO85pGuB8q4c3wV5r3cWlLZ3W/QbDApJJC3ROh061BlKH4VSmz\nq3yX\r\n=Rtjm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCs3/DkGJHz/etfbrtN/tTh4TejLOZWvIQ4rI3/3WFqywIgfp5T/YSeNnPtkZd0ABpQkZX6TmmzTF2Za96pLnSdXc8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.761027ff.0_1605737690253_0.5848098540919555"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.dc93d04c.0":{"name":"@material/mwc-list","version":"0.20.0-canary.dc93d04c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.99cfb6bd5.0","@material/dom":"=9.0.0-canary.99cfb6bd5.0","@material/list":"=9.0.0-canary.99cfb6bd5.0","@material/mwc-base":"0.20.0-canary.dc93d04c.0","@material/mwc-checkbox":"0.20.0-canary.dc93d04c.0","@material/mwc-radio":"0.20.0-canary.dc93d04c.0","@material/mwc-ripple":"0.20.0-canary.dc93d04c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.99cfb6bd5.0","@material/feature-targeting":"=9.0.0-canary.99cfb6bd5.0","@material/mwc-icon":"0.20.0-canary.dc93d04c.0","@material/mwc-menu":"0.20.0-canary.dc93d04c.0","@material/ripple":"=9.0.0-canary.99cfb6bd5.0","@material/rtl":"=9.0.0-canary.99cfb6bd5.0","@material/theme":"=9.0.0-canary.99cfb6bd5.0","@material/typography":"=9.0.0-canary.99cfb6bd5.0"},"publishConfig":{"access":"public"},"gitHead":"c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c3e20c69c9dd47eb0b31f0ff51e8150d8d27ee3e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.dc93d04c.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-bVimN33IBocqDHcCFj6VixZJXWP81GX76BecUDZCEqneKXviZmELmO0aICfY/TrtVUp+gQoBXPL1rwtLhPGEuA==","shasum":"bf82f08a5f89544a61e2f83fe4430f503ef28059","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.dc93d04c.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftZ4pCRA9TVsSAnZWagAA6wUP/jk0IS7FG1c5LKDV4xvB\nx/QJSwxVVbBzxKsjTXH3jYyEpLn8FVfn6OeLlnqMzfwOjX7vUQK+TdILJySR\n6+Uto6HRd+exujL9PkrwuW309IKqtXTJ1i+KmQ7/OskN4m5Evse0hiQs9fIV\n97xRVFeGwFtI19HaCU5tpNH27f5exTsctsI4q6OXnVokC9KHCYcV70NT3tcL\nkt/WnHIxW0DGbH/XVWROROZ08CawCuostjOgpEdGREDBmJIxzqRFkqiQDnFb\nClsPw6jOX3flTr1E9Ci7JS7XGW/RquUUyqGTZkfBMv+kWQw2bjtjroicfs0h\n+BfdYls3Jbm0Pq82M0WbxJClWSWBMWUPYXS5813x00laLJvDXdb9q+qe22Wh\nOSr6ezmluFSNxFvLcRxvMHza2euOVmF90v0YNuFZtnF67eOERha34tre6LQT\n0NIwpE7ETBqMXRPnFGYyrEztpuO0QrIKejfpYQ+i4z4z3ZZmITVEy2JCky+0\nVOZqk8wLD4GWaIkxWgjPF4P/oAl820v1aluJnzxsSitmfaB1c2Sziveo0vgU\nqW4L+SGQYqcMPV8VDnYGs/ViOTGG8oV0ufsHs57fiU3Q2K0ja2O+5oR1jToj\nNkXLO9HtaWAyxLC9sl8sZM7DgMqBhIO8lpGN4W0fZ3S9JL0TZeJ6ROEFxLtG\nvqLt\r\n=VV7E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0rvp7NA3OsDXeJPk7TmE4yX/Wj2t/PW0aWrHKP0yuFAIhAI1R9XKw3u5/in2Q01HzhDB2lHrMJu/EUTKyV+VpSbYb"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.dc93d04c.0_1605738025550_0.2287591675460967"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.4a5d4eeb.0":{"name":"@material/mwc-list","version":"0.20.0-canary.4a5d4eeb.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.99cfb6bd5.0","@material/dom":"=9.0.0-canary.99cfb6bd5.0","@material/list":"=9.0.0-canary.99cfb6bd5.0","@material/mwc-base":"0.20.0-canary.4a5d4eeb.0","@material/mwc-checkbox":"0.20.0-canary.4a5d4eeb.0","@material/mwc-radio":"0.20.0-canary.4a5d4eeb.0","@material/mwc-ripple":"0.20.0-canary.4a5d4eeb.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.99cfb6bd5.0","@material/feature-targeting":"=9.0.0-canary.99cfb6bd5.0","@material/mwc-icon":"0.20.0-canary.4a5d4eeb.0","@material/mwc-menu":"0.20.0-canary.4a5d4eeb.0","@material/ripple":"=9.0.0-canary.99cfb6bd5.0","@material/rtl":"=9.0.0-canary.99cfb6bd5.0","@material/theme":"=9.0.0-canary.99cfb6bd5.0","@material/typography":"=9.0.0-canary.99cfb6bd5.0"},"publishConfig":{"access":"public"},"gitHead":"6b9b0de3adf5b550661d63baa970642b71da5fa5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6b9b0de3adf5b550661d63baa970642b71da5fa5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.4a5d4eeb.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-vafRy3hpfnp6vd59WuHxfc8r2Epv+iM3vTb8Kuep1sauKiCARoUvPALBiMLcCIkq9926iwtDiuAGiI8rn78QPQ==","shasum":"f16365fbdd70cb1e4e40e8c3715736cb7d871741","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.4a5d4eeb.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftld+CRA9TVsSAnZWagAAZjoP+wZTSt6rLcKA/K2QNvkd\nUkXCNerpfO6HHLDNYeZ94qY5oMD8B2eYqmG7Avf7libGQDtpbU3SiJ6n0VCV\nKukk6wEBs1u9cpJz485m5Hx6y+5r2sfrudrLx2SSqqa26LKp3+wtENtIKhbT\n4YOBH/op1rC0i4sn84lhf1horcTG1vJUfnv6sdcs4mFIkQr1p5d3C3VExLR2\n3IrEAPsqxIajJwESgePioPWKAZ6mDYXiKOkI+Ke1kPF2Y0raPBFcr1E1IMnN\nwLbfMWmDruowDIzQV5ZL3rjfMpk1ORKDtQj8uMZRLX4ZQezA7r10ixbxFewM\n0D+ZRXQiDhZIC0rab3QCxdLUiHz19/CV9wc8S4sZBve6WuM8RhQhLFIBxFsU\nNfuEWfdhBnafRWJEx3bDcxeWaIy4Xidn2UfFUaDNqTNew++UfCItfOW+cWnC\nZh1IxEi2/Dp+5AQPF4FolyfWKVKNNnxTsAADvcMjtg7LK1NwfpoTU24JMx3F\nYti5E9NOhdSeyQoVAk9fDel+OBPhMxXABTEL50l8rnqctC2+RtE7sRWeLO5Q\ny5OkPaB5DFX/+HfNXE22ImU1Dy2Q2ArR5czGXmc0TTRvirwYo2K/JQvENLbK\nTxHmqEDfjmwpQjnnpLQRELX9e2IK+eO2tB05blM+AEDMGQ0sxEm6GC7/Msy1\naqEZ\r\n=Xf5r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDcN8UCPv2tD4dPGoGxIuYUTIHQF8+2qaHqRwadsECSIQIhAPXEbVl8YmXb0IAU35Wx5IHJmszm8gJC8frV9d/9MtQx"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.4a5d4eeb.0_1605785469597_0.576494429656037"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.bd176a15.0":{"name":"@material/mwc-list","version":"0.20.0-canary.bd176a15.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.30c11bfc2.0","@material/dom":"=9.0.0-canary.30c11bfc2.0","@material/list":"=9.0.0-canary.30c11bfc2.0","@material/mwc-base":"0.20.0-canary.bd176a15.0","@material/mwc-checkbox":"0.20.0-canary.bd176a15.0","@material/mwc-radio":"0.20.0-canary.bd176a15.0","@material/mwc-ripple":"0.20.0-canary.bd176a15.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.30c11bfc2.0","@material/feature-targeting":"=9.0.0-canary.30c11bfc2.0","@material/mwc-icon":"0.20.0-canary.bd176a15.0","@material/mwc-menu":"0.20.0-canary.bd176a15.0","@material/ripple":"=9.0.0-canary.30c11bfc2.0","@material/rtl":"=9.0.0-canary.30c11bfc2.0","@material/theme":"=9.0.0-canary.30c11bfc2.0","@material/typography":"=9.0.0-canary.30c11bfc2.0"},"publishConfig":{"access":"public"},"gitHead":"8c9d27b834d60d0f197616dd1acd74cbf2cada07","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8c9d27b834d60d0f197616dd1acd74cbf2cada07/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.bd176a15.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-BiYvdcBqhrOM3rDZr2ACSUsVOvP7pqyjX8FGuZyL44eFw6OfM3RtdEW7W+z0DJvOYk5f0W38x7pSOw5llEJkxQ==","shasum":"6b62c8878a01e18fa062d2132b475ebfa74cc7ac","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.bd176a15.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJftsNKCRA9TVsSAnZWagAAFmYP/RwFoQeuBaX85GlpNhIN\n0jSYiG1egcnsLaLqP3qHoFDHCznBjomly2hdIJsCjcW+RTjDBVGkuGjOAwHb\nCw/C1gwQN5vpXlNnfXGGvpgFFsB0nmdsbpMzzB6h7V/LlRrRwTH+AcgtfH7G\nz6hS0RBBbqDNmG3h+FPLpiTA5fUIsFi2jIDtQF1Uk+20SlNR7hnyV+q1Ciax\nFd7R0lDVmgyKd4PmCjLb+jX+9kWNpIdk39jf6+JPsqT5D3LaxEikJOSBczug\ndoniT/e+4hOBf7AZXRtsQb68mS+54cgUllTiMiNnFNdcTSJ8AHtrLW0xeo3q\nyxbcZ3LzmF9sZf14uwyFIM5c5VlrTG2Wxs0Ie2QvrtNAQfrDo7uZoW9wGWxo\ngKoWtcntu5v7uyLMkRBHsotJqX/FC4LXHDS/7kujjYB/hK26eHtat7sw8Bnu\n38MlV1qCFHstRDl6e6YWbdN9X578wog4/7AUZtgFhE9Z+us2lREjyXhGocxB\n1bao8Tahk1MLusTqLjX+2U2b5HZ23HYrp8bM24YfrLyzeQTLwYoeII3yDBYC\n/SbjsVurQwS6Ls03ELhVrc4JRDFbgyQOjcJy6AKTpIPpmtzHDrs9PINdu4yT\n0EXFDmAbbdK5extWPlIKd3nQmy6MNDEFKLl/ZLXemJw6sFYGAeciV8mHHoLw\nZiRU\r\n=jIc0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmA4s2PVBEUAD/UYOdMnqNXCsmwU8/go9spljxc+JQRgIgQ+5BXGKy1F0K+63M7/n/HSfyLBYqv39gLRFyUG1iSl8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.bd176a15.0_1605813065559_0.8332967539634892"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.e85aa60d.0":{"name":"@material/mwc-list","version":"0.20.0-canary.e85aa60d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.c927a5d05.0","@material/dom":"=9.0.0-canary.c927a5d05.0","@material/list":"=9.0.0-canary.c927a5d05.0","@material/mwc-base":"0.20.0-canary.e85aa60d.0","@material/mwc-checkbox":"0.20.0-canary.e85aa60d.0","@material/mwc-radio":"0.20.0-canary.e85aa60d.0","@material/mwc-ripple":"0.20.0-canary.e85aa60d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.c927a5d05.0","@material/feature-targeting":"=9.0.0-canary.c927a5d05.0","@material/mwc-icon":"0.20.0-canary.e85aa60d.0","@material/mwc-menu":"0.20.0-canary.e85aa60d.0","@material/ripple":"=9.0.0-canary.c927a5d05.0","@material/rtl":"=9.0.0-canary.c927a5d05.0","@material/theme":"=9.0.0-canary.c927a5d05.0","@material/typography":"=9.0.0-canary.c927a5d05.0"},"publishConfig":{"access":"public"},"gitHead":"3a749ec8278eb0b5833500696f08308837328144","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3a749ec8278eb0b5833500696f08308837328144/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.e85aa60d.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-PNSVJhv4Vra3/8T5MYoPr5MXHSa3TC4rkFbsIRg5UaAIPxq9PZg0DmNy1bDTcvtIUjaiHwBfmX+gZsVxgNVsrQ==","shasum":"80d18f3b4e7b6b03ebfe8cf81196f8576f035315","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.e85aa60d.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvDbOCRA9TVsSAnZWagAAzjUQAIXULZmLukD0B7obiXQn\nQY78Xzy/OkJSH5w0apucKokccz2D7pppG/WRryqM+ZlZQ6vsVTBTuDljWsWk\nXAgTVSfFnF/jrN2qXN/ysNRvo01R1p7AroObp1KyqbSbgfpPwmnHmSj/rkCz\nptQaULJ+Jspq+HG2gRqPU5YGQ9RKGM2U5hHIc4qoAQAEbMcr9UmUyIFSPYBo\nHPk6xcl9a3o7pmO4aGP8BUequUked3OG+iI+QplUE5opWI4LslaAkGTRAp9R\nlERIbQ8ZMBdicKx4YUoXH5ouV7RjV3hiRfJ815sy8pJIbXZfMrUUKdvyTL5n\n25+1XZte2grbSwGva25ZB+2cV4/DftgOAL92tf4L9RmmcymxZIitDX+/T96v\nBLxZNP3LUf8K4ZlgzTqBLM9ET78mlZ+l/k+IiisfId+pBPhwctWSjg1fNv1p\nTbjByFK99E396xzgAc+VeP7j4L0gTdKj90b9cMCCqJad/1Gr+gMBLOGs1Rqt\nJCL0A+VO1WqHfhSTd3LI20JXpBhTjBvNhf25lVSeed9+1lO6JSh86Q/aKvUq\niAcADw5qQhCQ7cX2o+vW1ygVsVgDxyxs3dIxtKMFoHaTrajp+zEqPmSaW/K7\nH9EG4Zdn4+P1+bKQexa+FBnneT46v3IoU1Ne6IVAbMmq9y20EVubqHwpAQzS\nkoyK\r\n=QpNt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGL162JAUr545jLXWmW5ZTMydKMJ4bNizrZB1fN6GKVHAiEAx4VIhXkKFtmVz3Qh45TUO5azjklfLFl3OshNEYTFrxU="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.e85aa60d.0_1606170318132_0.27108637061717644"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.72092360.0":{"name":"@material/mwc-list","version":"0.20.0-canary.72092360.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.c927a5d05.0","@material/dom":"=9.0.0-canary.c927a5d05.0","@material/list":"=9.0.0-canary.c927a5d05.0","@material/mwc-base":"0.20.0-canary.72092360.0","@material/mwc-checkbox":"0.20.0-canary.72092360.0","@material/mwc-radio":"0.20.0-canary.72092360.0","@material/mwc-ripple":"0.20.0-canary.72092360.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.c927a5d05.0","@material/feature-targeting":"=9.0.0-canary.c927a5d05.0","@material/mwc-icon":"0.20.0-canary.72092360.0","@material/mwc-menu":"0.20.0-canary.72092360.0","@material/ripple":"=9.0.0-canary.c927a5d05.0","@material/rtl":"=9.0.0-canary.c927a5d05.0","@material/theme":"=9.0.0-canary.c927a5d05.0","@material/typography":"=9.0.0-canary.c927a5d05.0"},"publishConfig":{"access":"public"},"gitHead":"ad7741df1b6ab1f1eaee400d6026dc5ab7821d66","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad7741df1b6ab1f1eaee400d6026dc5ab7821d66/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.72092360.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-r0VI8jtZhb32ksLb+/ATjhjuH8s1YpFcLFHN40nFuAby0dCwMyNqWjZswXtp2EAyzcl1dy3RX1V8i1NGOxRCwg==","shasum":"07f8392ef346f4af69f9104aac0afc5f1d7cf98e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.72092360.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvImiCRA9TVsSAnZWagAASNoP/1bflpJOOqVeI2gGC9XN\nyh8NMXklb4GEiTQ1NrqO1zg5/eloCOIkv8aPFJQZMgJdwJQ+9Jgno5qAkAsS\nWxKc1SZxLZ1yn0tM7lUTt0k2hgNAsIXx7Q/oBSjKc2jfPAqju/foYWwKf5BF\njllxLURNEMrdMiVuPf6C4rbju3WbytPj9f9Wk3w3aY8QOa06goeK0eDsYF4B\nREV7cg/A4+GhICGWlQymP4sfw4/OuNZpGsGG6sExgUrtT4FL+U5F3kxjTlkX\ndJ4xf60SFToOUkcrrMMCJgqz6v1oxP6P86fA6KNatSO0dI08VBLJXCDJC0NV\n/E4G3FtSUSrigz9TefxuEJ1e9DLg/pLTw92OELaCGGxAp2Fu/qUwrVhbRejF\nJvq0grOIJD+8m+HJxWYy6j+GkyfrNkeG+3TAOd0MuiQx3ow7kR+8U18y92qG\nSLkjiNL2eZOFpHfycWFs5U/3/6nAM5ZClxhynEumFYYh1w33RwPl2mLO0xEi\nj9DD/YS5UaJSgl7ULclGBs2gI4+XNmlIC0ZV1sGLwVaaMy5vwZ7ZumWnjKlf\n4Jlg0eCkaqFSHJBcPQMMUZNjlBjBzHg+0AywnUsnsGiN6BKLvzKAdLgd1epv\nB3+4RVcp/72RH8ES5wTwe55jZ4mHLhTmk6L1nMG5KqwZMSKkjz0CZ1czXiLG\nhn2I\r\n=sGJ7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCiGQmXrSH0XjQyjL0wT2hcn/hIydbFJk4gP0lSTR1eQwIhAJAvYDQ2jM7Crjfrfr7bdfiCHp7mcoBeqT2Va8Dr2FYy"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.72092360.0_1606191522256_0.7837823989441723"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.baf9d39f.0":{"name":"@material/mwc-list","version":"0.20.0-canary.baf9d39f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.ae27b44b0.0","@material/dom":"=9.0.0-canary.ae27b44b0.0","@material/list":"=9.0.0-canary.ae27b44b0.0","@material/mwc-base":"0.20.0-canary.baf9d39f.0","@material/mwc-checkbox":"0.20.0-canary.baf9d39f.0","@material/mwc-radio":"0.20.0-canary.baf9d39f.0","@material/mwc-ripple":"0.20.0-canary.baf9d39f.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.ae27b44b0.0","@material/feature-targeting":"=9.0.0-canary.ae27b44b0.0","@material/mwc-icon":"0.20.0-canary.baf9d39f.0","@material/mwc-menu":"0.20.0-canary.baf9d39f.0","@material/ripple":"=9.0.0-canary.ae27b44b0.0","@material/rtl":"=9.0.0-canary.ae27b44b0.0","@material/theme":"=9.0.0-canary.ae27b44b0.0","@material/typography":"=9.0.0-canary.ae27b44b0.0"},"publishConfig":{"access":"public"},"gitHead":"aaf8660af2b57dfe4523a224abf621deb5b5d3c0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaf8660af2b57dfe4523a224abf621deb5b5d3c0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.baf9d39f.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-1uyoCYk3bRBOdaisObZWbFo0ZgmBLO3Sn7gwnl+nTbTYbC/hstQJ7qdbL8EsT58tBcqo5Ssba3Hwa3dlXqG4Ww==","shasum":"57ab4831ed2cb4d4759e4fbd4bd14ce786c63af2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.baf9d39f.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfvtFDCRA9TVsSAnZWagAATYgQAJ1hyxWBWsz5MAZ3fvKY\nPF5Zawlv/URSHPqxFpII1UKRgNUawBf1v1nyOChtJhG3QEuhPK9NJ64SX+rn\nR/E/TMlJrzFbHpd/md2qdbtV417lAxigHwansrjJTvgcSDDcbQth+wfHUWGj\nc+dG7iEJ4wXXUJrDlr0s1RzmIVe6eH9hbWk7GlVMs2QIQQgyWQpldyZEtJFx\nn1gMB7WmagREOLT/S4PZCOgVyVXgsEvqTVdq6zhPtZpSg4Evk/ZlEalp3Y+q\n5k9sbGkSHWy4XPQ2/Ynd+OPZ82lxmNwyX6xhHEXrmG8d4n+yD3Y5MMF2erR5\nWLqyyG1ZSOxxw638JdlY0U9AdJWd15vhkYqkHs/h4W6Wy+YAh7vPzo0W2z3G\nN6R1al6A+JtJ8N49R52OhgpTtc1YZYwFcCCvtJwxDXKql4yX/QPV+5BfWH6/\nzfJLAdGnc8e8S7aHMIN0gCSlLotdfLljJVCNW7K2mVrkvkwv8gYEgx7j8ch/\n1ek68akDNnaZI8i0OeiuQyYIR2STMzb6ywuKjr6RULHnA0Rogv3ICkLsTZj+\naKstRbAv/pmdxIUsiygltbeeUDOtgVzjcHVyQ5aSuVOoUB1wU2hDGCD/QyPc\nN+q10vu/ZX9CpmKmUxnmeuNeqDtWewiWaT9dO+1qXPG6FoDcfLyiokgK+r5c\nc3N1\r\n=83A9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEu64zMUMajskC7F7ZaAlFMN7XGq/28KiiGSmkRnYKb1AiA21wgN/Klf+BcHTWMO8vVOWrjb6Ot6AOaSw8NY3N6kkQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.baf9d39f.0_1606340931105_0.44746437942409445"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.51aab0ad.0":{"name":"@material/mwc-list","version":"0.20.0-canary.51aab0ad.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.ae27b44b0.0","@material/dom":"=9.0.0-canary.ae27b44b0.0","@material/list":"=9.0.0-canary.ae27b44b0.0","@material/mwc-base":"0.20.0-canary.51aab0ad.0","@material/mwc-checkbox":"0.20.0-canary.51aab0ad.0","@material/mwc-radio":"0.20.0-canary.51aab0ad.0","@material/mwc-ripple":"0.20.0-canary.51aab0ad.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.ae27b44b0.0","@material/feature-targeting":"=9.0.0-canary.ae27b44b0.0","@material/mwc-icon":"0.20.0-canary.51aab0ad.0","@material/mwc-menu":"0.20.0-canary.51aab0ad.0","@material/ripple":"=9.0.0-canary.ae27b44b0.0","@material/rtl":"=9.0.0-canary.ae27b44b0.0","@material/theme":"=9.0.0-canary.ae27b44b0.0","@material/typography":"=9.0.0-canary.ae27b44b0.0"},"publishConfig":{"access":"public"},"gitHead":"ec218298fa6cb371e229348142cfd266d65cbfa9","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec218298fa6cb371e229348142cfd266d65cbfa9/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.51aab0ad.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-sRMbCcwlgtvLNzpq/wc1t7y89goUD/5KNbLCDldvEPhOEnThkwmCuPRkfc4yblnDGvIUjISk7vIQOVrabC5XZA==","shasum":"6bfa0999ba132d0c81824d6a4f9500ea1c0bb0c6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.51aab0ad.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfxZbxCRA9TVsSAnZWagAAxqsP/1ZRA94HZJK5/3QuwrKg\nNSgalOQUMcAIBfT4g/aREhguJSn/s7+RlJXd0tnapv71gfEqY1nAgI/ZO0Wl\n//RvuHZggnfkBbFt0SvdH58XCRQ/MpVyxMk4Y7c11fThMq0gTk6HNjXHKni3\nPD9CAiSc32OmVkKgngIqY4KkOytI4ELvUUZojmtfJNYyvOyzIYqRYj6JQQdW\neOdIIPkGTCPeYLuq2wIst7faxL894BZwDkFs7tw19ge8YSYJBLUzlWZJNvK2\nlZyD9y33T7S04/yc8Y+isU5UuvSZVMz6Rppj1tOP0tGIYZ7QLECzicjUIgtb\nSkJtFvjS8Y/PI5w1mk6KU5fmxIw5lx6FyCUQJY/MtNHYevn/a/E88owd+VDl\nz20y/K58qfzKQx1afK2cNBFf0k3mdcDqhSBhhC6zh1CNHgdS5lSWcIzpxXUB\nTc870qSZgC1eIlcVzMvlP0Dw12gkyRksjMM9VFVhz1VZSJ/E8yRIos593aE3\nLCIVGLU+jOVV99PwHMGnDxarikd3lKd0g0OUXx4wV0TcBEu5zTAcCVDgjgJS\n5o6jQ/PqaYuaf0bGWTkAmCTSitj4Yz3omJKtP6UgUqxiEMwWP1yxCf/hAYmu\nOvSbZxqxJ4Rx7gnXkIvrJvg+qVQcWH2a2/r8YjfyJr5uzs+/C1fz/auq3gcL\nagbl\r\n=Q6VY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLajUYJU0MsAtXWpG+csw5RgqsJsYBYOTh1YwE2A0mjQIhAMhmdiyFoK1AqvUTVttvQK5KRjRhMVN5QqCH5QYkzlKL"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.51aab0ad.0_1606784752676_0.212878528852392"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.8fd4af5b.0":{"name":"@material/mwc-list","version":"0.20.0-canary.8fd4af5b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.ae27b44b0.0","@material/dom":"=9.0.0-canary.ae27b44b0.0","@material/list":"=9.0.0-canary.ae27b44b0.0","@material/mwc-base":"0.20.0-canary.8fd4af5b.0","@material/mwc-checkbox":"0.20.0-canary.8fd4af5b.0","@material/mwc-radio":"0.20.0-canary.8fd4af5b.0","@material/mwc-ripple":"0.20.0-canary.8fd4af5b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.ae27b44b0.0","@material/feature-targeting":"=9.0.0-canary.ae27b44b0.0","@material/mwc-icon":"0.20.0-canary.8fd4af5b.0","@material/mwc-menu":"0.20.0-canary.8fd4af5b.0","@material/ripple":"=9.0.0-canary.ae27b44b0.0","@material/rtl":"=9.0.0-canary.ae27b44b0.0","@material/theme":"=9.0.0-canary.ae27b44b0.0","@material/typography":"=9.0.0-canary.ae27b44b0.0"},"publishConfig":{"access":"public"},"gitHead":"5b16bb5535dfd0f880b710b51d20b7085d91658c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b16bb5535dfd0f880b710b51d20b7085d91658c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.8fd4af5b.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-aAoJH6sHR6oqZ8ICZgdVPhk4ROBA/H4/3s+rRTuEvTuKnQwPMI5ogQkgtPSLX6bbw6h4r++Rhuwc3hkSr5/Tbw==","shasum":"c5d96cf1bd54cbc09cb1672beb38e17422cdaf87","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.8fd4af5b.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyDEECRA9TVsSAnZWagAAmtUQAJL5Tr03a5q6SYx+SL/C\nPLDeuDxC7ObzH3gLRZNSMlzAWCG4W8ZabnmZRfBzmxAlXeoraVDbcUc5raly\nLYcQ1GBWZO3CL+e49lqXVB5tyeHCGTctocU9DP7yJ29jvaZmI8unP3Tvu9zA\nSu/1D/zxpELMhJUaX3nxXzc5YZpelxkS6FOhVLtjwXamB0wxvQF4R2Me5DcF\nxdgVmjuXO+1gl8pJRiCnerSh34OnxV+0C5FqbHqmkY6lJnWllMdfab13DHle\nDGmvhcIjc9JKrThoPLVOQx6zYIBHZVpzuPvw2TiV7CrDmp9O/q3ZPTAnM8HR\naKVASAodRoA2yGRbQbnarZUzOaoV2W2spiAh4u09LOtjY3KGr7L/ut3jZUwP\nm/YiTxebxmRcABFKoQ1k94wnBpAwz3zymhSrV/5LdGjsU2gY/NW6622czkDA\nrdlohN40BsMXmRnTCAS4LpixRCo6WMBnjB49hJgCh2MU3BOl7nErPHhqK4YZ\nVY949x1X2UlWEDMYmvqf7jvYrxoa420tDJXQ37dTpOBn0C91IeKfOuBamQnd\nBIKR+BxKXYQBI0L3NLSbaGw0HitPEfWLsNcBwSvULBXOcJcfU9aDTDhq70Hy\nqJQI89bnZBx3OJeL5oPuaC3Qq72Wg5T2jRBq0BnTxVM88ag78yGTs34yFW+A\nEgpR\r\n=6E1O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE2mRXH+TNw+txz7UzkRj36BjfFA6hQIcLdLiaX4+JibAiEAta3m9+Kj7NoXqis79OscKmTOpkVt+lfRe2+aBK2JK5k="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.8fd4af5b.0_1606955267693_0.5619886660010072"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.26d14d2f.0":{"name":"@material/mwc-list","version":"0.20.0-canary.26d14d2f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.ae27b44b0.0","@material/dom":"=9.0.0-canary.ae27b44b0.0","@material/list":"=9.0.0-canary.ae27b44b0.0","@material/mwc-base":"0.20.0-canary.26d14d2f.0","@material/mwc-checkbox":"0.20.0-canary.26d14d2f.0","@material/mwc-radio":"0.20.0-canary.26d14d2f.0","@material/mwc-ripple":"0.20.0-canary.26d14d2f.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.ae27b44b0.0","@material/feature-targeting":"=9.0.0-canary.ae27b44b0.0","@material/mwc-icon":"0.20.0-canary.26d14d2f.0","@material/mwc-menu":"0.20.0-canary.26d14d2f.0","@material/ripple":"=9.0.0-canary.ae27b44b0.0","@material/rtl":"=9.0.0-canary.ae27b44b0.0","@material/theme":"=9.0.0-canary.ae27b44b0.0","@material/typography":"=9.0.0-canary.ae27b44b0.0"},"publishConfig":{"access":"public"},"gitHead":"50590c8a7415327322f7e0115bead5b6a56b9d50","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/50590c8a7415327322f7e0115bead5b6a56b9d50/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.26d14d2f.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-0miirgCXF0rM9EMn44dAvC/Eml0793cSBFLVoiyAtcPSvVOLion3nbxwFoJ0f4/60FWarUd7WOzGS3vq3KNsqA==","shasum":"2a1c32c2b89cf712672154da97e8750b67a3f8f8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.26d14d2f.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyDe6CRA9TVsSAnZWagAA7GQP/1N4FVeRsezXyDBcjjFT\nHIZ2B8vrqEECLRvoWkrShaR2srSNJvZDJki4uHVBE8Wt/sZsD8F0XDXdTtJp\noPNGTnqSdEP0J0qdK/gDH691Mvp24aLoOHv5D8Gq5bnejurVXGtInQtBObSc\noi1r1fdSvUxtRXmSo8QDQhm3R0/+ac5jSFGsGDvtOgrlU55cSrKugKHf5CXa\nC/UYc1WalCX9LFULZIMWn9ZoiS/ibG7ky+4ta+JRbnGio41boUxp5lemggbZ\n3YUn2PNbv7kHf0gEpP2U74R/ykjul0SYfP4JYemTV9JXfE/f6s2vEeJv9CgY\nWf8JBQnfI+dGaf5ZuWFnaeASB7eeTn3j+SRrVlfrJsrWzCMRbC6CMw2dWEa/\ndDfLHyQdAix6m2uIjEA+/ObnNPMuioDLaRWSiaBm1Bs8asGOLWvWzAaIwHQv\nvfgLQy8QlhNLdCx4qFitvHuK+FxkD6vSzvvyduwUAyz5R/yU6GFC80NLlBUN\nbbgZ2rXOP3bSh/UQ4oXzBrOXIMtOUxh2lwf7uJ/6Y5vAdIjQHo27KQhC9Ua6\n38pfxTpA7PTlEhIgaTBDP6K+xTYzF/q+yHs2BLaVJP35SDtcJl46LkNwQLl7\nYDTP0AJVyd93YfwMLOzANf6Djuauzdx72pB3OS7q0WrZZozK/cblRUQVPOST\nZwHt\r\n=fy/M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGVkmkfp1FXUowzzm236BibZuGVhfM0xF9i++TP8TjZNAiEAgFkGDkM8NpwU3cENfb8JlAjUpKFaMYSHKkWPcg6zcgE="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.26d14d2f.0_1606956985919_0.5320865828157997"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.1663d7e4.0":{"name":"@material/mwc-list","version":"0.20.0-canary.1663d7e4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.11da3c0db.0","@material/dom":"=9.0.0-canary.11da3c0db.0","@material/list":"=9.0.0-canary.11da3c0db.0","@material/mwc-base":"0.20.0-canary.1663d7e4.0","@material/mwc-checkbox":"0.20.0-canary.1663d7e4.0","@material/mwc-radio":"0.20.0-canary.1663d7e4.0","@material/mwc-ripple":"0.20.0-canary.1663d7e4.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.11da3c0db.0","@material/feature-targeting":"=9.0.0-canary.11da3c0db.0","@material/mwc-icon":"0.20.0-canary.1663d7e4.0","@material/mwc-menu":"0.20.0-canary.1663d7e4.0","@material/ripple":"=9.0.0-canary.11da3c0db.0","@material/rtl":"=9.0.0-canary.11da3c0db.0","@material/theme":"=9.0.0-canary.11da3c0db.0","@material/typography":"=9.0.0-canary.11da3c0db.0"},"publishConfig":{"access":"public"},"gitHead":"864efc8adbe583a57a2a7554cb0b3d625f3d52bb","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/864efc8adbe583a57a2a7554cb0b3d625f3d52bb/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.1663d7e4.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-fyWf63S/iKcAFJethispPg9kEQ16QU74mAdON6bQ3szoX/ERHmJzA2/x994T7pA4etEkdkL88MA/8aaZXpokHw==","shasum":"04976d95ecb981f1dfc8e3e1a34c90045e381e65","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.1663d7e4.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyDyPCRA9TVsSAnZWagAApz0QAITvOntOZE/5OC1MvLZk\nmEsaM2n9IEl9Xdl8s4VBaf/vxSJgjYZAHE4a3xtRDDIAlbjMBk2qCDbE25Dr\nrbDIn/qyI0qaqGOC1Afh8xdh6QD25jc8fWxOKT1b9eEt0RBBGP8jtck3/3wF\ny2qy4BabYRhlzPMu74A7xyNNWxwwKZbtsqv2+AOCYBou2yHUs6oyK1VGo1aw\noX+PAFlRLCheTjJXtpQhtDt7GiQKdlbQPtOoSS6iBsikpLzyBzlfyNJHwTtR\nW9zh7XlYnkh741ccH1FCsYSLfqbVsHkvdhNi0MViBVSoOhY+wxbzmPxdsFSc\nLtc9g6zIHSRIY8b3G3gNA8ZCCVFq2II7uOQ1lLPVw7U4w+G2EWLCU79grKWS\nJTUhRUL9frx59aFSTRbx9F62IAQWQOIQ3KUYSk4VDYdjPAKUWBY7j4tQ6slF\nF3cIRBd3ZnmHGViRbyVJRQlERA7AcePZdhmor6UBrBbecfTTsKcBcpi7GO1Y\nQCQQxUb7ozvLFtoLUrtSCV6tuf1h9DaFLzyLNVQxO46z7llEwZElWycjUTeH\nbz4TBh2flq9ZY/WMNQmuzv2o3/7umuOVQIbyyN+oF0/RDUVDmbPBX9QPGrJx\nkETM/h3Gyyjlsfo2b43TbOW4PF0okdl7cKrfBr693LWBUdM+FULxcY2BEEy4\nra6x\r\n=k9A2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCREuEq2smRmjJiJyyY7V2OBOnYkp7OODOAcp2+zR8asQIgJ2lPmPGOb29uc0r//vAfETLi/0L/DfDREoTTUoScCkA="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.1663d7e4.0_1606958223552_0.8349835743885909"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.cbe9fc12.0":{"name":"@material/mwc-list","version":"0.20.0-canary.cbe9fc12.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.11da3c0db.0","@material/dom":"=9.0.0-canary.11da3c0db.0","@material/list":"=9.0.0-canary.11da3c0db.0","@material/mwc-base":"0.20.0-canary.cbe9fc12.0","@material/mwc-checkbox":"0.20.0-canary.cbe9fc12.0","@material/mwc-radio":"0.20.0-canary.cbe9fc12.0","@material/mwc-ripple":"0.20.0-canary.cbe9fc12.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.11da3c0db.0","@material/feature-targeting":"=9.0.0-canary.11da3c0db.0","@material/mwc-icon":"0.20.0-canary.cbe9fc12.0","@material/mwc-menu":"0.20.0-canary.cbe9fc12.0","@material/ripple":"=9.0.0-canary.11da3c0db.0","@material/rtl":"=9.0.0-canary.11da3c0db.0","@material/theme":"=9.0.0-canary.11da3c0db.0","@material/typography":"=9.0.0-canary.11da3c0db.0"},"publishConfig":{"access":"public"},"gitHead":"ecbb2ff521324d43ca1ca402e290e52618e0454b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ecbb2ff521324d43ca1ca402e290e52618e0454b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.cbe9fc12.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-Cd6dzVDDllBL0Mk5DUYRwG0f/ZMbs5mGe8OqHAbSYI7UbmNZftWDfnF6sxn12rP1wAo8BlROm/8TLEXIy4XQ9A==","shasum":"f2e5855090aff220a52fc3e1bc5f3bc78e37124d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.cbe9fc12.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyTeGCRA9TVsSAnZWagAAWD4P/iA/5mNwB27n9+6b0AgC\nmfa2dtispuGN8MspFgtDZ8UtKz1o+/jQcMhtwsDsrryU4h0qBUeRteJ/OLWq\nFFOL4MoX9DvkgkSYcutmcM5sguDcfQNwMG957TI6UBDpgstn/5IoJ5lpTPfR\n+nnPNLbjGuTlHyz/fzEgkECd/xqg2YxmSc+ynlNCUkNpYl6po243+BdFktKA\nOKIK7Pry6YBuCuhMWXRp13FscxyvR+mA8uVYBAZO/BGIfdbkCeXwiVvBxUTr\nskaAeWUCdhujDlNNHprVJ7nb+r58gNr4cg8ut/ufnC0OyqGRZTZIGtRcE9B8\nHp2wa5GEBq/MsJKAuYNjSPDbUdbzVSPxVnfr1emXvpE6a6llIytf5iUeRYpN\npCWop3rdrO/6NdR8Qslz1K1/gmHHXdPi4Ce1dHb+ZOWs8efxKUBFGvRwgV+n\nqILpCxJ9RlVlZg0dU7/wF20LNaXSpGvOMRVditGVtWxPZMnBkcntiq4Y5ZWn\nqE00P24Mk9aFkiO0xO7KacMZfNvanbxfFrBz9wFc3jompxeY6C+O8copnXX8\nRLx0LX3/tBVhJt4dzOWluwNOwi/tkJ1LaAu8I72pTj7AlU6VdVXgVGT21jcJ\n5/x2K/6MvOqr89xMCL01I8w4uTSSAdG9DbCLTWpurqolkqN1Tf/i1CZ8Nfli\n1Z4h\r\n=bB5T\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG0Kwk9CTbRjGZK1PVjrMzy97eoHbYseAwVBf7fPplEIAiAglGL9l4lgHL2hZDyIXzJf/Lw4q/GnQ4coxQIaZ6Na6g=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.cbe9fc12.0_1607022470228_0.5990610674676198"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.9755be10.0":{"name":"@material/mwc-list","version":"0.20.0-canary.9755be10.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.11da3c0db.0","@material/dom":"=9.0.0-canary.11da3c0db.0","@material/list":"=9.0.0-canary.11da3c0db.0","@material/mwc-base":"0.20.0-canary.9755be10.0","@material/mwc-checkbox":"0.20.0-canary.9755be10.0","@material/mwc-radio":"0.20.0-canary.9755be10.0","@material/mwc-ripple":"0.20.0-canary.9755be10.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.11da3c0db.0","@material/feature-targeting":"=9.0.0-canary.11da3c0db.0","@material/mwc-icon":"0.20.0-canary.9755be10.0","@material/mwc-menu":"0.20.0-canary.9755be10.0","@material/ripple":"=9.0.0-canary.11da3c0db.0","@material/rtl":"=9.0.0-canary.11da3c0db.0","@material/theme":"=9.0.0-canary.11da3c0db.0","@material/typography":"=9.0.0-canary.11da3c0db.0"},"publishConfig":{"access":"public"},"gitHead":"45ec0e755bfb97f054d48e3543837f693347d6da","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45ec0e755bfb97f054d48e3543837f693347d6da/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.9755be10.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-RQxSUlb6RwuU3vep7/OPrtZ+0DOpi/n6to13uoCrgrW1O9+GwlgQGfdFgp3+GWnqELC6deS/sWoSxc++9ctYrA==","shasum":"dfe7b02dfbf037ada75f7a5d5847062f8bbb5b1e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.9755be10.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyTvBCRA9TVsSAnZWagAAKB8P/1w74j9LE2yYIef6xdTA\nqhj5/6WiTwl2BNTpjzvIiy+RdSM8rIoo5zMO07J+m+YHFCjH1sSPGzvj5Buo\ns7/VZR7BVcaDs4o/22Q7zs0M6HlbwQSgF5EI0tvEY3r+SOKDEuSqpH7PbGWO\n/5h4qvfCulG7tZeYZzlKPHhYVoxOh3eWDTuLYiAm4wKVVtBLKmS869JCeiPi\nhCq2I+FsCCs5ioLEVVnNXtYoXptPTblChHVMeN0iMz0HEmO3NC8h/uyaZze4\ni0p5k+oaGTUehgmbsUycXyZdQOML1OubB+H9c23ANrqNreEoh0UbkM74XQlw\n1Zsg9V3SfVo8PX0e5WfRyYCQgak9vjb4w7FYZaBMFnripG00/d/xLOqEyelS\nS2xZtQwE4WDy1HJ/fq54Bq+mtGVMBAUSNmmAb1AVDVZVtPMxgjV5n+cwPZV9\ncfCcoNXwMyZRux4/jvW9gTJ45en3EloFZ8G1FUEwsQLZ2TNkuuW34tH5jWAy\nT4TLNXAKZqxtomlMOgAx57D9pR83/tsRzIFhA6v4U7p470yij9GEnmHg9OpP\n0+bQsEeSaUvzpaOxjUZEx/K9ASd7HtfIzTCPjm7B9ZM/ko0iHj523llV1Wxr\n9OLLVtH1k9mz0uk0sX5M0E5Bu6409XhOdfzHJj7m6FcHzTNxInlgH4ec8AeB\ndmj+\r\n=Satz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDOyBIVfvOSo956t796UAEq0UmAbkb9uqrr138pfp0P6AiAaojZw7z9SBJ5EQTGFHlpnU5lOvWYeQVuHQWoLENKBcQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.9755be10.0_1607023553163_0.6994943722484697"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0-canary.3f64270c.0":{"name":"@material/mwc-list","version":"0.20.0-canary.3f64270c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.1c156d69d.0","@material/dom":"=9.0.0-canary.1c156d69d.0","@material/list":"=9.0.0-canary.1c156d69d.0","@material/mwc-base":"0.20.0-canary.3f64270c.0","@material/mwc-checkbox":"0.20.0-canary.3f64270c.0","@material/mwc-radio":"0.20.0-canary.3f64270c.0","@material/mwc-ripple":"0.20.0-canary.3f64270c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.1c156d69d.0","@material/feature-targeting":"=9.0.0-canary.1c156d69d.0","@material/mwc-icon":"0.20.0-canary.3f64270c.0","@material/mwc-menu":"0.20.0-canary.3f64270c.0","@material/ripple":"=9.0.0-canary.1c156d69d.0","@material/rtl":"=9.0.0-canary.1c156d69d.0","@material/theme":"=9.0.0-canary.1c156d69d.0","@material/typography":"=9.0.0-canary.1c156d69d.0"},"publishConfig":{"access":"public"},"gitHead":"048e0b4e0ee67cb81910736a7dcdae5e949a5eda","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/048e0b4e0ee67cb81910736a7dcdae5e949a5eda/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.20.0-canary.3f64270c.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-mKu80WjmKXGh70owK1VMxHFBXKa2zAVs5y6df27G1D28mLqbuaRXy2vMUocTdvN5hjZWDtNhKXbtp6jMhErqAg==","shasum":"d02258e5f72654be22a0dd2f0046babb15c26d06","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0-canary.3f64270c.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyV2gCRA9TVsSAnZWagAA/scP/2/MBzwjwBsw2IT52clN\nygJ/Iz0VPAns0lVEBCGxhWJCuHLTMREz1ODOqvJDCmkGo1h50gsewQ9lvBlH\nsL9Jjb7Wat8c1naEhLvqU+sTFHC5eDTkAplrOvKPwog28NLPTo/ESl6Jtp0O\n95wp3zFT/Awwv5x0ceKU6JxTHzom4Sbx4YNXz1wmT0FL8kjbopVb2LlMq/k2\nmT41/yOX+Wr0faqyd0YNvHiSVQumfwAvoPL8yFrBAFMFM52HuRVdPxH7dNM5\ndCgxwqn6My4ehrb9Zwuu0TfaSR04hF21JI6C9i2mxsPUytQXoqHUrMHem1e0\n+e8EiG3Tb3j5G4d/vAw60g0PaUZ3OTDdwuSj2GqXqKbXkabaTUuPWJOu3YRh\nW6vxFuGuGXXILNPQmxxW3uZFK63YqHu67pixQ65PSedPTcIerIdO87g/AnkP\ndwguS70VRu0R8k5f2RO+UREjSosNnM2QUXp9Jyiaq+CoqJMJP6j5MmJauEpK\n3coHeWW+GeMpRMIS8DipKyUIt1+8zL/IsxEpEOCUFxvgDF3gmDYP+trLEUPD\n7MgzPUWAmwNiXgiDNzzs5yRik51IEP72wNNsgd652ujxmtkl4eB70l0a7zNh\nvYvUmie03OCbrt4dbzIPnYXDjbcZswGgJxZCZQcuR8z+SNB6viLUSieGI+SQ\neVoa\r\n=Sii5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE5LyEkK9z8NeQFfBESihZmswebFAdkQ8KVGVSMcuKITAiAOoTs444cl3xuaLH2/p4MFioeO4mh0tNATr5GgevYOcw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0-canary.3f64270c.0_1607032224210_0.879848582130109"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.d893b14a.0":{"name":"@material/mwc-list","version":"0.21.0-canary.d893b14a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.1c156d69d.0","@material/dom":"=9.0.0-canary.1c156d69d.0","@material/list":"=9.0.0-canary.1c156d69d.0","@material/mwc-base":"0.21.0-canary.d893b14a.0","@material/mwc-checkbox":"0.21.0-canary.d893b14a.0","@material/mwc-radio":"0.21.0-canary.d893b14a.0","@material/mwc-ripple":"0.21.0-canary.d893b14a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.1c156d69d.0","@material/feature-targeting":"=9.0.0-canary.1c156d69d.0","@material/mwc-icon":"0.21.0-canary.d893b14a.0","@material/mwc-menu":"0.21.0-canary.d893b14a.0","@material/ripple":"=9.0.0-canary.1c156d69d.0","@material/rtl":"=9.0.0-canary.1c156d69d.0","@material/theme":"=9.0.0-canary.1c156d69d.0","@material/typography":"=9.0.0-canary.1c156d69d.0"},"publishConfig":{"access":"public"},"gitHead":"d85f7378e0640c2cfbe4f96436e664222a4c2571","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d85f7378e0640c2cfbe4f96436e664222a4c2571/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.d893b14a.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-lqIxbnn/77yeo8iB/oSkLHeQ8P/kEkz/3fh5pbslDt6Vnt1hoJ6tp2II5bfF/6M1d7xgG2iXx47Nn/IoxTKZoA==","shasum":"bd38687cd66a1f4b2bd313ca6bf5189b528a0235","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.d893b14a.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyWYWCRA9TVsSAnZWagAARYUQAKMm42ovBtwcVm+D2Hpm\nBv2kEGZIM3lKTYpcpPJQbBbY+E+TUUfmAAvYohKxY4AbeCDWIL0Uev/v9IF0\n3EyVHCYSpWiZc2+YeMNkgiytrJ4N8UmjVedRi4GW9qkAbFpXwrs/m8eyzcG5\niQ0tPe7nAA+MDCmIumMBkSg0GgR6yPEUtdIDFYq5sBEz0oPjXGg2DWdFXWUO\nNIV6/A8zbr/r0QAmi3ZmdhLRd+24gEi6iz4YUN5Sw4pW6Toi2LfFps1/NC+8\nlR75DVR7P8jer5xY2gVs3pwGEUo/EtDfk1IvV2kj6k0xu5jutrbuPhjXGMqs\nDy/NmAC8vMwJx8y/gHQCUYaEXO0nNzJrT3E5JFb3OAkBi/r7Uj8LuFgh4oIB\nHvm7siU/zdPl7qvZWCQcOGS1PCpIjKAU6nP3WsXAx8cn1KmcA1gIjzdR0v3n\ncccV3XZiOQnH32goZXz+Oi7ZnWfLi82DlcelWuOw1g8jaDP2K+vuHl0MN0Br\nH7BHyAQvv2XU/v/YiHWwTHuGKngJXhIZf88fWQWublJt3DOgOj1HYD8z7/Jn\nWaG6XFin65bodTNg3LIiNUg7fJs4aKSw65BF7JeDvEqTCl4FguXVcExMLfLI\nsqfo+GNloKXvDjV9pOWt9IM9dA5l2XCqGxTvImdvrmOODCmGm7iY7z9nT5BC\n2X88\r\n=5hAf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAHA1y5kbHcuOsj69rXNDYangU2XWvX4O6Zzy9gBLZpbAiACRx/N8il/G+NC3TIkuVnpmTkdApBUW/q4F+oyvD+pIQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.d893b14a.0_1607034389557_0.9597283007550477"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.20.0":{"name":"@material/mwc-list","version":"0.20.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.1c156d69d.0","@material/dom":"=9.0.0-canary.1c156d69d.0","@material/list":"=9.0.0-canary.1c156d69d.0","@material/mwc-base":"^0.20.0","@material/mwc-checkbox":"^0.20.0","@material/mwc-radio":"^0.20.0","@material/mwc-ripple":"^0.20.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.1c156d69d.0","@material/feature-targeting":"=9.0.0-canary.1c156d69d.0","@material/mwc-icon":"^0.20.0","@material/mwc-menu":"^0.20.0","@material/ripple":"=9.0.0-canary.1c156d69d.0","@material/rtl":"=9.0.0-canary.1c156d69d.0","@material/theme":"=9.0.0-canary.1c156d69d.0","@material/typography":"=9.0.0-canary.1c156d69d.0"},"publishConfig":{"access":"public"},"gitHead":"d893b14a0846777b90c10839f3d05c36bc34692e","_id":"@material/mwc-list@0.20.0","_nodeVersion":"13.8.0","_npmVersion":"lerna/3.22.1/node@v13.8.0+x64 (darwin)","dist":{"integrity":"sha512-RLHn4k6oH2jsSorALbQJ3Ak0BwTyaTeKpXgjI65dHuMRhQaQUaMapJzfh5ghKPhjg1R5D+2r5wktjciFoZ9KVw==","shasum":"44b0bcd3653b46c7493614741fc7a11cee8abca4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.20.0.tgz","fileCount":45,"unpackedSize":244313,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfyWasCRA9TVsSAnZWagAA/FIP+weWY3E1prYB6kbSiQno\np5q9KxAsuH5NU3i41Hle5QzmOrT4gLkkEjEueprUUw4KiGe15sYifVFbA+jR\nNDUMcdeiisdB5w6F3fhY/nuXTjCkIxSmPn8GYHpeIlX/A3mqmFSiSjxVP8kW\nftPxvsE/2WLNMPQFJ3wIOPfV9F8fBKolgX+8BS+blnU78YaCNuvdQa0IcX5b\n3RwnWfWGqHnl9vNmQCSqYMRu3pA8oNCwSxGpu1MYXdJPZOdd1uaW5KKsKdNj\nbc1GQ8Gng/Hy22LYiTS4dgcBN4hD3HbmdGgQFViFC7S4916gS6pOHP/gUe/y\nE72FAFoE57Wp3J4dR1dYAx5ALHxrGMb7uS4To7sJSCCW0CIGlCgjrlax/DYn\n9M/rn0YqCeSTEYQBOtQWrpMb1k2urk9GQYVksk9pse9sZG/06E86CwkNFmUJ\nF0RQhPBe8ykOG4czAngWIYJbK+qUAGQPRYEyz5Ute//WE49YZrAUncYUWbrP\nYwq4EklweNDwIobx5ApNdDSJQ8Cw+4ts28SQPD/x1LYRssmLlFf1m72Z+JwQ\nqZwufF/0axyH80otokGDHj13E/aLnP43KzqVfP5SU3ycVJrlWzzJ8m0tnjIc\nuAw/l60rB0M5g4OICnJ1zQIY6FWjggYKJBISEg90er1Zle7OPY+lGJzPm+uq\ngHLb\r\n=Juci\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBACrFvsqNwoakEojiqXvHMIzmLyR5BPDEW6wuyliTeSAiEA4CqvtxI97ZpM1TV3/Ao6YxSmjqVuwVZlX1uPUcC3/Z8="}]},"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.20.0_1607034540033_0.5688612915704052"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.47c7d7e5.0":{"name":"@material/mwc-list","version":"0.21.0-canary.47c7d7e5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.1c156d69d.0","@material/dom":"=9.0.0-canary.1c156d69d.0","@material/list":"=9.0.0-canary.1c156d69d.0","@material/mwc-base":"0.21.0-canary.47c7d7e5.0","@material/mwc-checkbox":"0.21.0-canary.47c7d7e5.0","@material/mwc-radio":"0.21.0-canary.47c7d7e5.0","@material/mwc-ripple":"0.21.0-canary.47c7d7e5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.1c156d69d.0","@material/feature-targeting":"=9.0.0-canary.1c156d69d.0","@material/mwc-icon":"0.21.0-canary.47c7d7e5.0","@material/mwc-menu":"0.21.0-canary.47c7d7e5.0","@material/ripple":"=9.0.0-canary.1c156d69d.0","@material/rtl":"=9.0.0-canary.1c156d69d.0","@material/theme":"=9.0.0-canary.1c156d69d.0","@material/typography":"=9.0.0-canary.1c156d69d.0"},"publishConfig":{"access":"public"},"gitHead":"670d83aacd771290b76b657bfe6ee631865c037c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/670d83aacd771290b76b657bfe6ee631865c037c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.47c7d7e5.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-kjPgHaSJ2eq4NZA7pctlix3Fc864HNZ+pJXqW8Vsqn7ft0g6GOuoEf3bO/KPDMtskrdMi2UUWi26xdkmcGPaEQ==","shasum":"497cf0874dae720f7ed6f915d57e984e548dc409","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.47c7d7e5.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf088iCRA9TVsSAnZWagAAftcQAKE9cJJO52AoPG823hQj\nHuelYwggbLiiqiOSYa1GKDC7lDtVFOg5IYqHXnyIqpd2J/R+XpctCvv13tOo\nc7saXvX8RLkuvimFUSkF00Huqul42T5akBlRlF+uBvT7/Z1wguDdmp24hCc9\nAbIHnb8hoJDc9KW/umi/MVA8miO1T0tfhxNrxr2kCS92Ui4n3JV9adEc/a1X\nrzsQvJMw6Y1PG0+qTpDEnjAsg+Awi5pcUpRBEVkxqXvWmi6tz/kQ5oaUWi8w\n8JgltxVA690mbME7Y5J0zs8C6zH4/Gohfx7Qqoa5CX8k9p6NADdxN1L+FhQq\n2AvYwGB9M0BkTRF6ysWNgC/KUIOuNDc3Cm4/Yy2Lfdht06YWY//uf66Emg8c\n2oXwxpp8Ie3Fv8oZ73JQtqw0EhfwU7oCtiPZ4M1TFMGhu33FX/GP8GfGKKuQ\ny4r60iZF25bL/62E2ockoE2NIm2VnrBVHPznOx5cipSzFU7e+Vv2UtVJq/oC\nxWA00YQ691gkb937XVYsltjbw13ihqYxjug315EKiPFfl+DZODtzqGsI54Gf\nBzEEdddSTpmM30By8ZRHP7s8zDDtyKd9hJPxJtDtdUc23dBfRmxtJ6Bd4OC9\naKKzkYWzJH2Z2F783/qeKm/o1cZnQVLjVg7X2j2CBD5k4TNZveGY4boud0r1\nw1Tn\r\n=mgug\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDnbXauVHdURubdzcqv692Mw5lFSWv+mQCwbEJOGYQpMAiAbHZD49VRq421KyZd8rJqesmq6g0WNk/hiEqsJbvEJ1Q=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"taylorv","email":"brian.t.vann@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.47c7d7e5.0_1607716642058_0.11604376121604809"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.b304a78b.0":{"name":"@material/mwc-list","version":"0.21.0-canary.b304a78b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.9244508bd.0","@material/dom":"=9.0.0-canary.9244508bd.0","@material/list":"=9.0.0-canary.9244508bd.0","@material/mwc-base":"0.21.0-canary.b304a78b.0","@material/mwc-checkbox":"0.21.0-canary.b304a78b.0","@material/mwc-radio":"0.21.0-canary.b304a78b.0","@material/mwc-ripple":"0.21.0-canary.b304a78b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.9244508bd.0","@material/feature-targeting":"=9.0.0-canary.9244508bd.0","@material/mwc-icon":"0.21.0-canary.b304a78b.0","@material/mwc-menu":"0.21.0-canary.b304a78b.0","@material/ripple":"=9.0.0-canary.9244508bd.0","@material/rtl":"=9.0.0-canary.9244508bd.0","@material/theme":"=9.0.0-canary.9244508bd.0","@material/typography":"=9.0.0-canary.9244508bd.0"},"publishConfig":{"access":"public"},"gitHead":"44ea71b47f36de83be1e3319efa93b6fd3690c2c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/44ea71b47f36de83be1e3319efa93b6fd3690c2c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.b304a78b.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-7apAYhPJtTa2X1WHdTbasH15Uxs9V+r9RjZLQONu6fyR75vrriyogoYMt1/wP8rdjHERWiNPgL+W3hxj2+P0+g==","shasum":"10bafce1db04f0707532e7aa9ea04beb19618803","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.b304a78b.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2RbUCRA9TVsSAnZWagAANOcP/3DVIBbPnqNDAgGpAIRM\nOD2/q5GlKLqPGVYlz5IENFKASmo5KQKDNyV/TOxXJQF/jxg1gqT4tODO8JPl\nrNa9C9C7BLnNS4rZWEH5qmzHM8JaevWxlN+ZKZC1myeBPEmFL/toFytNdCM5\noURwjuL2vXaXqe9i2z94qPluqe1/xx8fl80LMAzCsaUHexkJ0KVBQ00xdjYR\nc8XsrNNz9QHswjTyBFtoSpLP6q7zeRC8hkCmC0rbmM3syPYL8tNrx9eYd6m5\nzJG3EEXThf/JWf+DKlTwIYW4C+r29xI6Su86nbuU0o9cvdcud2fOlZo3SaDe\n+gsvHh45iFQAw/yc5UqXaxlPBUlyKdiklzYiQeCYdRJWtbvwR0anx0a4kXMw\ne8UU6QxTi/CIHOt8HEfmtbJpmc6Wvilm8p2UVLFunFYjXO49cTkEqLIXubPz\nPQSXJFoZdNdasRvuSXFErxoaYy9SKBnfKBiO3ZsqiqnW43+pg2DnU+n0f8H9\nnoBthm6tYlzJr9RPmjSQBOMZPViuTPZ0cNqpiGDVnLNsrqa4db6DOLYzg4ym\n/04tpZgvXPPzBZqySLxLrNIHDYS4LF5arIIiqd40kuCh8Dtv/R44XHQyhcst\nT4A0Ben5t+pN2z9YqSVrCd/cqFQrYzEWWuLX/n0/r6FvAIWELmnLuWviGvow\nL8nB\r\n=xmYu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCT8GaWcCu4fEIegyvEknhMNIAbrDBpo8m821KfaEREpwIhANU5Zk1XBIjbGtXoKOkn8K4VBdxVk5BCuG1ar9ObIRTI"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.b304a78b.0_1608062676316_0.6521731963483166"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.777c5fa4.0":{"name":"@material/mwc-list","version":"0.21.0-canary.777c5fa4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.9244508bd.0","@material/dom":"=9.0.0-canary.9244508bd.0","@material/list":"=9.0.0-canary.9244508bd.0","@material/mwc-base":"0.21.0-canary.777c5fa4.0","@material/mwc-checkbox":"0.21.0-canary.777c5fa4.0","@material/mwc-radio":"0.21.0-canary.777c5fa4.0","@material/mwc-ripple":"0.21.0-canary.777c5fa4.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.9244508bd.0","@material/feature-targeting":"=9.0.0-canary.9244508bd.0","@material/mwc-icon":"0.21.0-canary.777c5fa4.0","@material/mwc-menu":"0.21.0-canary.777c5fa4.0","@material/ripple":"=9.0.0-canary.9244508bd.0","@material/rtl":"=9.0.0-canary.9244508bd.0","@material/theme":"=9.0.0-canary.9244508bd.0","@material/typography":"=9.0.0-canary.9244508bd.0"},"publishConfig":{"access":"public"},"gitHead":"8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8e5f0e24042f2b54d3ebcac6c8bc11f89a7c1a1d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.777c5fa4.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-jYHG4e7i7nerbUXdtuziVWfNsaWM8xWYNbzoiUfoZCZ/rOZHE+3SqTP4MTzakB4St19epkpRKa8ATtPDXDSUKw==","shasum":"388f524c1f7f84185bbff2d682c204f95265ea91","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.777c5fa4.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2oIYCRA9TVsSAnZWagAAIRQP/3DkKWHwit0vGDnimnjE\nl3WE+Z9z7OoMmQoT3oLpo0C5A7StZgGZJ4VNGDFe5xTXQ7JhHDUTXvz2L4Ty\nkCvdIasbRfpiUbabwG5ucd26Eg70h563jmz67e9b28hVd/QLdwxNnjpbqwPp\n60qoSBjBrV/VcTqbB0WW9Qaju78rnI8nbvmbKONYvNuIG17F/X+WrLlLsDl9\nuF3ZLWehIYu23UIinO3pSkrjd/0fIq6tWQjc5+gf+jJgXv2ax+kv3KRIphht\nqHb2WtjC2QvJs/XpF8gnH34n7+N3vu2cvW6IG4tBnFdh+lRERKL+0X/Qgj+t\njPEOSuyJBPj0AvAIH0LsIr0J/i/LoYXHibuHJBFKQa7dNiA3cYTGctveyBVU\nlwBhE6k3I+c8mAg7cM5Q7rhspYquXZUWIzzsxLbtcF+vOIHEhfJ8PylbX6wC\ny4rg17t2OSs3qBbK/EaKTzlyZvSuisIFwy4jjb86/zHaKBiey9RjIgEP44Ld\nxEV+9sIoVqDgmvuNga1ijB+k36j80uH7gWYHk53xtskIKCpKlMJxdx8Bzloz\nk/eG7qSIk70K4DYyDSWR8/G9znXxvmkRV6TXdmrYm8BEdlLMVq4cInrJ+P8w\nrlfz+NTUE5iRAQ1zmqGFj9X6c97NoKVap3vhWZyJMkoFcR5WfpsGbxW27a0h\noAs6\r\n=doIs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC3DnQ9px3mAlah2452OqneZ3TjWw9fS+wqh5xG601EWAiEAhWfsJeO0jS1WbcpIWP6k6JI+lf991iVezbgDxLEn/Wc="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.777c5fa4.0_1608155671970_0.5511860084120039"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.635c7996.0":{"name":"@material/mwc-list","version":"0.21.0-canary.635c7996.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.30fdfd06e.0","@material/dom":"=9.0.0-canary.30fdfd06e.0","@material/list":"=9.0.0-canary.30fdfd06e.0","@material/mwc-base":"0.21.0-canary.635c7996.0","@material/mwc-checkbox":"0.21.0-canary.635c7996.0","@material/mwc-radio":"0.21.0-canary.635c7996.0","@material/mwc-ripple":"0.21.0-canary.635c7996.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.30fdfd06e.0","@material/feature-targeting":"=9.0.0-canary.30fdfd06e.0","@material/mwc-icon":"0.21.0-canary.635c7996.0","@material/mwc-menu":"0.21.0-canary.635c7996.0","@material/ripple":"=9.0.0-canary.30fdfd06e.0","@material/rtl":"=9.0.0-canary.30fdfd06e.0","@material/theme":"=9.0.0-canary.30fdfd06e.0","@material/typography":"=9.0.0-canary.30fdfd06e.0"},"publishConfig":{"access":"public"},"gitHead":"a0b572136cec769df6b66314ae5710101b643ea1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a0b572136cec769df6b66314ae5710101b643ea1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.635c7996.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-0+xA3OKHto+mOJzpBDYZM6V58j/0loYln9olOx2px8GW8OSk2lVDE9HvBx6Bn4d4zn0+TRqDJ/4pXeawDdMhDA==","shasum":"8c68e0a085a47119ec17c92844d845390904ef3a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.635c7996.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2+qPCRA9TVsSAnZWagAAwHoP/j3bIyXGprotVXX8AGxS\n5plb1yPZUHiGo5bauYsLSjMlTd1tVcx/aPcGNNlt0eiKG1AwyNuN23PxB54K\nDx0TNhFGpYB+X2ihRf68WvKE5weV5GxPbHL30Doy3b9DeaR2UEA+g+s9z55M\n57lG5qfQ87Iuh5I/HDqEmb3wTA1HXGieeHkpbBTQ5NgdkfWBJjlD3Cmtz+hO\nUKmGVQJhSweH26g5SoeyJXn4wJ+GeRCyc4xESeF/0PGXwrNOegTzDjwZEOI4\nUl/hNDFYnL0I1dhwngHAQsdXYLiCCvjI+c3iIwrx3+T/KYuk/TDc0ulCJPY3\nfkvnF3CJ0Ex2szLPtnSPtarySgytNcu7kaIVxHkUEsFxE8LdExlmOwIzYeY+\nUByycxZ5H2qqT1o4jYhGCr+xzISSXe++ZMNbQZO8o42uwPAhybv31XIbyR3N\nUfHvNW8Cz4KjGxLCOw5iC+la78najNpbvSNes/deUNb2GNdLkHEdbIGgWaKb\n4M/pb30g0T9FCPThgfroZYmvLNqtWSJQzN4IUBknrvsAXtMfUmYXtNq/d5zP\nDtZicn7eduoUs/6FYBnSZ8Tm58far81OHvOzOqOGMkoks7SUYoiOwg2lft23\nVRRWVPXEazwjFXA5fI+8/lp7N1aodDr0N/FBsq/MoDWTbk5R/kqn8z78H1la\njmZn\r\n=Szv1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLUCpLYpa187725ZGZormwptv8iKwJi2MuE7cJUE8BzAIhAMYRhCTgG2QefVA+SYUl7R7sDX+R7YQmw+ucDhs6gBbj"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.635c7996.0_1608247950997_0.545109216458703"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.20b0045f.0":{"name":"@material/mwc-list","version":"0.21.0-canary.20b0045f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.30fdfd06e.0","@material/dom":"=9.0.0-canary.30fdfd06e.0","@material/list":"=9.0.0-canary.30fdfd06e.0","@material/mwc-base":"0.21.0-canary.20b0045f.0","@material/mwc-checkbox":"0.21.0-canary.20b0045f.0","@material/mwc-radio":"0.21.0-canary.20b0045f.0","@material/mwc-ripple":"0.21.0-canary.20b0045f.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.30fdfd06e.0","@material/feature-targeting":"=9.0.0-canary.30fdfd06e.0","@material/mwc-icon":"0.21.0-canary.20b0045f.0","@material/mwc-menu":"0.21.0-canary.20b0045f.0","@material/ripple":"=9.0.0-canary.30fdfd06e.0","@material/rtl":"=9.0.0-canary.30fdfd06e.0","@material/theme":"=9.0.0-canary.30fdfd06e.0","@material/typography":"=9.0.0-canary.30fdfd06e.0"},"publishConfig":{"access":"public"},"gitHead":"a6bca4682b5b0bc23e8311853608b98f5594831a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a6bca4682b5b0bc23e8311853608b98f5594831a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.20b0045f.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-jbRdo/euVzgCfydwuCSfgCoDJMfLBD7XkRmybx7doLjOyMPGFKBaougeX4gErO1ZyM1vQMNtmmFAIVI4nyem5A==","shasum":"80faca286e5c8ea7796cbfce4389b3d6d641941d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.20b0045f.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2+6HCRA9TVsSAnZWagAAErEP/2zMPjSzT495lxfjbjny\n6+tQDxN5IbwRRKacJ03cHv2RBATDKiaNoqD5E8ksGyMmpSbZJhUBbRdRQcHP\nHXp+NrSsei2EGRzo+Fj0gqJ9syv2UuMshgMUfic2q31zfTsrBK9osj4AFHsc\niB9k8Gv7qJflBKMDQWT/aFEuxf7LMR8QUcyARcOO2RIaeZS9xmWkleCAlKIj\nwsirMeiSx7I690+jBiGmn0HHAuiz1Dc+J4smtehGSSxJA4UG/IEvND8Hw8cZ\n7H2CsEID9t83fGjQrfAYUy/L2Szb64uTqhxhLcy+oFTN4nVtuP+L8VWu0dET\nTDgKYtL9Mr4SxjBfw6owheh9B21NxwOL52qB9Ijmm87MH4CNT/WZ9htSoC+5\nc+31pm2is5k9sMWepbM6+riZdAlO49VI1TrghTDTt/WC7pSnLDzXcUL/XqI6\nRq833ysNxC7M50kDF8gtwGH5uDZhzS+28g060fkjTcLD9Du0FtJ0D1hFLNHv\nZF1gjTFd6qJKXH5hMVrMXNyMoTvs8bDmN26dyct1jMoX/mvgDOknXlXF+522\nV70lfKy5Q9TkOr56bOFHW8XMWKvJ3/fjEWCeoy88QcrKw8G9Qq7s/d9050XG\nu7DBiFxch37nTUEyh8sgdGz6sWOGHIBVGKk9ktTLRzRmTi2k/v7xrFF0vTQV\n/7LG\r\n=Ro8X\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDQs4U+wfJzjFRmB/PnjG1B9Brok7s9i5qqFsynMM+EowIhAKBvFJedEwNTSfzK8MTElizSsDl+hfW27CKAgpTCRWh5"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.20b0045f.0_1608248967552_0.7670730396614163"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.41f77000.0":{"name":"@material/mwc-list","version":"0.21.0-canary.41f77000.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.30fdfd06e.0","@material/dom":"=9.0.0-canary.30fdfd06e.0","@material/list":"=9.0.0-canary.30fdfd06e.0","@material/mwc-base":"0.21.0-canary.41f77000.0","@material/mwc-checkbox":"0.21.0-canary.41f77000.0","@material/mwc-radio":"0.21.0-canary.41f77000.0","@material/mwc-ripple":"0.21.0-canary.41f77000.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.30fdfd06e.0","@material/feature-targeting":"=9.0.0-canary.30fdfd06e.0","@material/mwc-icon":"0.21.0-canary.41f77000.0","@material/mwc-menu":"0.21.0-canary.41f77000.0","@material/ripple":"=9.0.0-canary.30fdfd06e.0","@material/rtl":"=9.0.0-canary.30fdfd06e.0","@material/theme":"=9.0.0-canary.30fdfd06e.0","@material/typography":"=9.0.0-canary.30fdfd06e.0"},"publishConfig":{"access":"public"},"gitHead":"59ffc250e9e7d85ede63c75495b12e981e365677","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/59ffc250e9e7d85ede63c75495b12e981e365677/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.41f77000.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-qaoioJAShiw7EovAv+UtSsb8I0duZAUeg2LrjTZPlCxaEhnsMM9YEh3l8St3D+sqWZIdDEpLGu9ryqyJkIAW5A==","shasum":"c0fc783d1bd7e5a924028c3147c933e4ad3faf97","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.41f77000.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2/liCRA9TVsSAnZWagAAtkUP/Rmi2e9jNOZy0fN3tocD\noBLEM4KLPWOAyH1RvRmlj0nytu4G5KXvB2JFEBPLqvFJR7PApmGcx7zbrcO8\niK9GCp6yb1gVMKGBG9Z3ryF5g5t724B3zQLiNJPgDMZsKfeVZFHzigwxCewC\n2MPoLHe2w/9bljCA6eaMs/YqHDtaNjGzgVQ8iOg8nEaILVgkjTZU90cssz7p\n/RyOUvsaeMT7H6S0sr1tSuDH4ZDpM9XbriMSyndoLmY4ewtE34crs9D5BU+D\n9/V6py7kl2ZLMNplWSkrLtV7Nhzfg+zNqwoCbkcxoLT9yyk9NuPNzqzwST54\n4FjKsrO8D/jzoLHQxKi/IC4yndlA6NgpxlQ0xm4zkA/+sdlxddjmigMFvFlh\npGIY/W5W47JAI26LJB21xCOW7yFomcZaS/pTBqscC1qFVKdTWwT4Age3tpL7\nWoW6IinhA472MEJHUFxM2EEVj2fW4WH2HH3/Sy5Dj9/vu9uTkTCVUi4DKQ9J\nqnRPPj53R32MsYM6v8cWS2oi+0QETV1M+zolmCZ82AfGD9K+EwaYaLcWYxf3\n7c9LvYj4SqH4BkKAaU8izFa1RQow4mKWl7jvtIUpArO8Nyl46j44ugu7XfB6\niBdp5BiRJcGLPp0hque2FTqdvtbyVTejo4UWpVlQqqcw5GurweM2NfhpDWx5\nSZtK\r\n=ON7k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHnkaACzbP6UC8fpeGS22+2S+Jl+TZScKEfEO7ud5Cq4AiEA0STrqWBVpreYhKulf9Kjs76+RBchczJxqcOVnClWkg8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.41f77000.0_1608251746279_0.6114770167009616"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.afe4079a.0":{"name":"@material/mwc-list","version":"0.21.0-canary.afe4079a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=9.0.0-canary.30fdfd06e.0","@material/dom":"=9.0.0-canary.30fdfd06e.0","@material/list":"=9.0.0-canary.30fdfd06e.0","@material/mwc-base":"0.21.0-canary.afe4079a.0","@material/mwc-checkbox":"0.21.0-canary.afe4079a.0","@material/mwc-radio":"0.21.0-canary.afe4079a.0","@material/mwc-ripple":"0.21.0-canary.afe4079a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=9.0.0-canary.30fdfd06e.0","@material/feature-targeting":"=9.0.0-canary.30fdfd06e.0","@material/mwc-icon":"0.21.0-canary.afe4079a.0","@material/mwc-menu":"0.21.0-canary.afe4079a.0","@material/ripple":"=9.0.0-canary.30fdfd06e.0","@material/rtl":"=9.0.0-canary.30fdfd06e.0","@material/theme":"=9.0.0-canary.30fdfd06e.0","@material/typography":"=9.0.0-canary.30fdfd06e.0"},"publishConfig":{"access":"public"},"gitHead":"aeb3539e673debaa2381e0aa7f186b95e91ee563","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aeb3539e673debaa2381e0aa7f186b95e91ee563/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.afe4079a.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-nQ15b1RnqqFEfUR284ZBFcPC0IuDLzjNzNmfLTtX1pHyRNdVBX4VqOHR1M27QaXdprD3pvwUXrSzRiEuXoSvhw==","shasum":"137060e948406eb2b0c26338b910dbe0566a6446","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.afe4079a.0.tgz","fileCount":45,"unpackedSize":244433,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4i+BCRA9TVsSAnZWagAA/EEP/3DUQ9yol8T0ycCq76AD\nBvWfSSfHgNifoTmylmk0gXPM5t9ZhEb1kBOKm/O1ZPZrO+uy7COf1VQGGT6C\nWWKg5gM5CFFQtbxL/igFyi+Z0tUt7XXY8c/oKJ/hacuW9S416foZmPbhTfw5\nBrYrUIEOsSSSIn7j/DolDOMjJYa6W8ouKCkAW0GZT7VURQe3PBFmFRZAoOso\n1/fiq9xKipsPXmZpFFCWTT1G5ip2kSWoc26IxCY7fPtz8uns85KnZD1OGqUh\nxMBs/xXSY+jPdsvO0eHPowx6fILLiUbjkgB94TLL/UiVDrBkJ+h9kpm4zoDd\nN6aVrUF+nHm7+ZgStQhEL04s/JN8Ij8h9rLzBqKEkfiqvP5pVETi/rjdc9R7\nCbTw6rm/Ctvysi1rXPylSYv/JlPbyrcZRJ37JTWGMftpl32z6Oodk4cQBxYY\nIPB9/yA4qa5ONuyC3aAKcCmgfoC8LuLgUr//PQ1ApyRczOktp1ggTBqATeRX\n6CgpP8rwdkAe3hyk/HQB6+bpPopeWVLKgUVGzKifhPr53h8Syxh2mh0+Mv9b\nE0yPke0LsCyicAmGrAR/6aVRN6UZvmcSrOOzxIGdxOjKt6waaGDZzWBrPY0W\nr1gVzcHevHoH5GsG2OBH6VB9yjLexWrNJABAOXrDvmqkfG003H/FbB5IqpdS\nrcsv\r\n=rJjZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHa4N/rUllR77XUqmDhqZKMqkMWki1uMzAX9J3FY0asdAiB9g9zRW1Cs7d9bdPXuqwK6ScssEiw5UVXvTpDcoD0pMQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.afe4079a.0_1608658816854_0.6765987749023039"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.407ef8f9.0":{"name":"@material/mwc-list","version":"0.21.0-canary.407ef8f9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.671d72d95.0","@material/dom":"=10.0.0-canary.671d72d95.0","@material/list":"=10.0.0-canary.671d72d95.0","@material/mwc-base":"0.21.0-canary.407ef8f9.0","@material/mwc-checkbox":"0.21.0-canary.407ef8f9.0","@material/mwc-radio":"0.21.0-canary.407ef8f9.0","@material/mwc-ripple":"0.21.0-canary.407ef8f9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.671d72d95.0","@material/feature-targeting":"=10.0.0-canary.671d72d95.0","@material/mwc-icon":"0.21.0-canary.407ef8f9.0","@material/mwc-menu":"0.21.0-canary.407ef8f9.0","@material/ripple":"=10.0.0-canary.671d72d95.0","@material/rtl":"=10.0.0-canary.671d72d95.0","@material/theme":"=10.0.0-canary.671d72d95.0","@material/typography":"=10.0.0-canary.671d72d95.0"},"publishConfig":{"access":"public"},"gitHead":"b600a06f2f54a052373cbcc038980333a8068672","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b600a06f2f54a052373cbcc038980333a8068672/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.407ef8f9.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-Xv4Bt9wvKbaEgHHhxhsdUwe3KUBJbnqE2YDmpCz022yao21u0M9ZkygPbVCrBP/tTKObOj02j5cmOMd/IG7p7Q==","shasum":"2c0ebfd98fef5069e1bec583f674378d32163d89","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.407ef8f9.0.tgz","fileCount":45,"unpackedSize":244442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf7QctCRA9TVsSAnZWagAAxo0P/1LDjjIZxUJgeimThUfe\nsKCxQv6YUAM3fSZh5qyZ39WdilPuJSzjF7fl7v1jI6W0pU66q3tWCYKyGsBd\nxgblCX1nP13MGNvc4zQuMa15z4ZbVFY6kUfAUNVqPIFY/Nk1WmZCwT72YxVQ\nxouL6GNGK7dp/BWh7598+TQlH0OPp25JgkhgMhPSdX2B2CBY3bSkfTAtWdpJ\nWZAJ5rIrEdZyz+t3slPKhNxI2jmuwre5d2iufUoE4PE4U6/Kmn+rNU3vxgJ5\nnmDHy2AYlMDZWilYOPZCxcdaQNS076F7FEPOuwHdHRVObeYQMMSpgS6R5h96\nis5/0zZzplXgq30M9jScXjNxxc1/83REBXjPwbCvTwh78mpUsHFyy2wwy98H\nENCELiLNJ8N28ph4hFaGrxT2ebk7g3WcXsWqCCzDurmM939GsHG/DTdtM/4P\nvPYjp2lwefzmAqzcouKpVoPu80irCbHX6O6JSTY13WT+EhkBM5mW1YT3mom5\n+wCpK9ab7Cu7KyNaR9vxkfG7rDSvTUCbjeg8uyEA1bmRHUwkKT8qyiRMwPPn\nloxE/PG0fC9f9otGzi2ZKWn567bz12pyHzZLNR6tSiitGMn5sgNTbCRbPOct\noKnQ8XlxM4I2PFBTBibZK0U4GKsArLzZzenuCg6ypgXet/M07qqUFYGm4P5u\n0QyF\r\n=38Iq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7HTfYWrcMQqYjiSGh7ZFQKx4rzfS7J/dbQ1JnCrKFkgIhANvT0Z6Y0Ip3WtUM/gjKsjl6h4TzsHViOPGP7C8pyTWc"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.407ef8f9.0_1609369389243_0.05979390726077671"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.2e26e137.0":{"name":"@material/mwc-list","version":"0.21.0-canary.2e26e137.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.365c69360.0","@material/dom":"=10.0.0-canary.365c69360.0","@material/list":"=10.0.0-canary.365c69360.0","@material/mwc-base":"0.21.0-canary.2e26e137.0","@material/mwc-checkbox":"0.21.0-canary.2e26e137.0","@material/mwc-radio":"0.21.0-canary.2e26e137.0","@material/mwc-ripple":"0.21.0-canary.2e26e137.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.365c69360.0","@material/feature-targeting":"=10.0.0-canary.365c69360.0","@material/mwc-icon":"0.21.0-canary.2e26e137.0","@material/mwc-menu":"0.21.0-canary.2e26e137.0","@material/ripple":"=10.0.0-canary.365c69360.0","@material/rtl":"=10.0.0-canary.365c69360.0","@material/theme":"=10.0.0-canary.365c69360.0","@material/typography":"=10.0.0-canary.365c69360.0"},"publishConfig":{"access":"public"},"gitHead":"cd3d92f8ebc04ae6cd6d286c7983e3028e380428","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cd3d92f8ebc04ae6cd6d286c7983e3028e380428/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.2e26e137.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-5o5meigEJHiMeamONbKrKFDKjrLbUiYoFhfE1zZQCnImJUF9VdS7IPZpBGGu5gWbBFemfLw7FaAu3wM/Dqi4jQ==","shasum":"474a7c4fe454a571415b85ef5d63e98f222ff563","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.2e26e137.0.tgz","fileCount":45,"unpackedSize":244442,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf9LTfCRA9TVsSAnZWagAAGS0P/0A4+Dq4lLgHoOHkVeCT\nfUG6c3Fq94c7/Plvi0PQL+7rjeDYWtFR2NcUEefXabedwMFJq2TLV9twKor1\nnkVU3Vf88yyGyBlhOUWwZJjhVg7Z6BQkz6QQ9Bk4l9Ovs1IsVgUdp/IGwKfD\nJqhpU8vqJ8Ia9mI4eaTTon54I8+MDXhhTXOcukS36NyFZZAdyw+qZvIkKmhn\nzi+8so+dHkG85ZIGOpRYMGQsnDSHxP7SUgvN6cqSYVep+bVBjEbM0sZ9VhFR\nvzDR+pQc7u05cnX1fSei03j7QB66IVCSZnOaaddyJdPnVTKrBPo1Fzt6ZnHf\nAn/HRwSQJuQMkEZ3j3MW7VNx6Xyf946t4xWpQBq2A/1O1WM3RRLAAyYQ6+wl\n94dS7ctXdgkF146mfrRReEwtkYyjnWywpiA9QubJJHO9ceuqCGv9hST6u9Kd\n69eLrmkvRfeEYrtZocLcWhUWNx9z00OU7zn1zsN0EDbNJKkUvSHCICUCk29/\niXDBLqgsYe4ANZ7SdFcvbxv0Vh6KpR7IpCcRh8nr//qU1U5OM7AOOVQrZTFA\nbHTZ72rTeEYBvvncYEJO2A0XAaUbfpUfUpw0JLnknD9+D6meN8PMyHCpxsx2\n0MTG0Yw2p2hImvb1kXpxrUia3pSfiJMo8hiykDEc/iXyeqjEkknH4X4SGWiJ\nPjXf\r\n=zd7U\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLMm8uvLi7I2dtGdX3a8DNOcULdR/J7TWDRonrSWoO7QIhAJViBOhGM2NWrA+7I2qhaHzn4D959dUqs+KAmaLVuZVC"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.2e26e137.0_1609872606917_0.9223786857524094"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.9009f6c1.0":{"name":"@material/mwc-list","version":"0.21.0-canary.9009f6c1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.abdd10065.0","@material/dom":"=10.0.0-canary.abdd10065.0","@material/list":"=10.0.0-canary.abdd10065.0","@material/mwc-base":"0.21.0-canary.9009f6c1.0","@material/mwc-checkbox":"0.21.0-canary.9009f6c1.0","@material/mwc-radio":"0.21.0-canary.9009f6c1.0","@material/mwc-ripple":"0.21.0-canary.9009f6c1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.abdd10065.0","@material/feature-targeting":"=10.0.0-canary.abdd10065.0","@material/mwc-icon":"0.21.0-canary.9009f6c1.0","@material/mwc-menu":"0.21.0-canary.9009f6c1.0","@material/ripple":"=10.0.0-canary.abdd10065.0","@material/rtl":"=10.0.0-canary.abdd10065.0","@material/theme":"=10.0.0-canary.abdd10065.0","@material/typography":"=10.0.0-canary.abdd10065.0"},"publishConfig":{"access":"public"},"gitHead":"d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d6f3ffc9298b3af3985946aa3bdd75c862b5d8c3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.9009f6c1.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-ugTmDbz5ccdEDUkVPa3oifgLCee1gdCsby1Se14EsXTa0xhC5Sx/Snb+NwuSkk4NYEHYrT72kseyLeUiybmJMQ==","shasum":"f5dc7c55fe53f8f79ed831ba3b0603f3624dbb57","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.9009f6c1.0.tgz","fileCount":45,"unpackedSize":244579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf+LiKCRA9TVsSAnZWagAAYMAP/2e9lljgb85kTBN/gdTJ\nxiNLWxb27VE3qSNd/wi8i4ZV7w3wuSpR4bH5LhWz+zdE/YnMRojsWKJPQY6k\nnOEoytXeQR/hl+SxG6QtkNimBmcJX2nvdPg00NNLppRMSJXbZkMcNwmvKVUV\nbXK5AaH+OxEF/RunhC4KbjCUCcNvq0BvLMy75E9EgiHHOMuqnHaADIDhuTZI\nTHAscTmJr6PzKCuK9G/f3At2CQ70HLcbqybC1+2hnn3f0GpI89jKO8Bd0fza\nZYXLcavoUoha/Cpg70wdz65nIr/3iWzYOokchfYahOR6+r62pupwUAIzJLEA\ngz/rdes1J9bpL7R3boCY4CLB1aMRh1uh2bWt1FQIj6yitnIyXJ/GSodJNZ99\nQlz5fEGZSbSiUvoRH90Fo8PRkUn0WNl4y7r8bbR1jbL6Hq2pjwVU+ef44SMj\nyZX24E2H2/obIQP8z3excY5Z1/S+N+Q/W/qBcL9E01Ur054KEA8nC2YglUEp\nsm80qzIcNhrKfyPWbIzWXLEH3NzHOHzz2Lpp6crFMn7JAGYDjcpODbBvaBNc\n1Oy961wizlay0WPTUIWdX2u6WjHEKsaxQY3u1vd4ndS/NghSTM/Eesi1CNUS\nhf2Opj2dj1sdP3OM9YjSitVComJ3Z2uFB+0DjKZN7/38UbTGrkUXnosOkepk\nVs4+\r\n=3J1a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBfcZs6wUhJJigYwxGPf4gnGrmJwfS6bAWC7pvTnz93YAiEA1IzJaotAAEe+KQvSzMji4wFoPshzsprEvQ5yHvkBYqE="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.9009f6c1.0_1610135689960_0.671711305136472"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.ee99b646.0":{"name":"@material/mwc-list","version":"0.21.0-canary.ee99b646.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.b8a1a58e4.0","@material/dom":"=10.0.0-canary.b8a1a58e4.0","@material/list":"=10.0.0-canary.b8a1a58e4.0","@material/mwc-base":"0.21.0-canary.ee99b646.0","@material/mwc-checkbox":"0.21.0-canary.ee99b646.0","@material/mwc-radio":"0.21.0-canary.ee99b646.0","@material/mwc-ripple":"0.21.0-canary.ee99b646.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.b8a1a58e4.0","@material/feature-targeting":"=10.0.0-canary.b8a1a58e4.0","@material/mwc-icon":"0.21.0-canary.ee99b646.0","@material/mwc-menu":"0.21.0-canary.ee99b646.0","@material/ripple":"=10.0.0-canary.b8a1a58e4.0","@material/rtl":"=10.0.0-canary.b8a1a58e4.0","@material/theme":"=10.0.0-canary.b8a1a58e4.0","@material/typography":"=10.0.0-canary.b8a1a58e4.0"},"publishConfig":{"access":"public"},"gitHead":"e3bf8197782f6099f32f339bdbc9218093828cdf","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3bf8197782f6099f32f339bdbc9218093828cdf/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.ee99b646.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-aGAIrNb7sdT76cpHHt93QT0y/w6/C0JpomNLBJsacZOaSlre4QeSqy+ce5XUr9MZKgNPY5JlVcX7p66qpWm1pg==","shasum":"12e2eacf721e97df501c84813a8682eab41f10be","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.ee99b646.0.tgz","fileCount":45,"unpackedSize":244579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/Np9CRA9TVsSAnZWagAAefQP+wYfeJbrFhCo5NvXl5Iy\nJAPd1q1lfsWyLvgyqiSR/sEwqC5yREA23884SQlCHqSln03/onSRdIhyQMaK\n5+Fq3g/+NmTlimLMNCJrq54j+ETzlVABeimAk680SP0zWgisIz/6grKH+B8S\n5m8xWF0++D9ssQ+dU8xq821pD9ubQx+WdgyUcjDOjvjm1Mucix6cgDDlfc2C\nTD5ntdgUGh42x59xQZfZdWZQMluxcAD304++6GrxRFw+hMHOKpoDNKXBdiUc\nB+yXMDVIVVUZ5QHmX25/d53ILXUozY0oWX3lruW9T9XxO7/QyeXYPdKhxtBX\n/GK5fisVZQfEg2I3NEp6+JT1OLP0DIVLszfU9yAjo8jLBW4lX9NCQ9HSduqd\nG8bgVsO3xbfpVzJQrZYXDhbWaRAF6e4W6BdCJOnu5KjHfFjgdmdJYzlT6Zgw\nDfXZmS/smOy3vMYO8fqd0v+FoTwEHu+qeEGNjC8TElDLCAMzH/X89RONVPYk\nzgcSvClcOXMUsOYPtq8cS7HlXGvfAMEn+hcVHV9AyICl4rYMN/vB5clYoUOQ\n0C4bLrSznf+eT6gtUviNPWmHFd3MbbxQ9O+/aTfv6RyQ1I8hDuSVE8fb7E0E\n2/giKgBXedF9XqUzaFcobw9ZDh8JT7IbE/2MeciQYjGd7MdT6n0FHD4Ukle7\nEuyZ\r\n=V3vz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCoLRgoJRoaC921rV9QYzO0LBAtu7lV6LL63KUOU24b0AIhAPlakINi0RUiV9hFS60CCycpKw5PM3wucTNwTsbMk0gc"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.ee99b646.0_1610406524597_0.7432627124920572"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.740ed33b.0":{"name":"@material/mwc-list","version":"0.21.0-canary.740ed33b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.7584267ff.0","@material/dom":"=10.0.0-canary.7584267ff.0","@material/list":"=10.0.0-canary.7584267ff.0","@material/mwc-base":"0.21.0-canary.740ed33b.0","@material/mwc-checkbox":"0.21.0-canary.740ed33b.0","@material/mwc-radio":"0.21.0-canary.740ed33b.0","@material/mwc-ripple":"0.21.0-canary.740ed33b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.7584267ff.0","@material/feature-targeting":"=10.0.0-canary.7584267ff.0","@material/mwc-icon":"0.21.0-canary.740ed33b.0","@material/mwc-menu":"0.21.0-canary.740ed33b.0","@material/ripple":"=10.0.0-canary.7584267ff.0","@material/rtl":"=10.0.0-canary.7584267ff.0","@material/theme":"=10.0.0-canary.7584267ff.0","@material/typography":"=10.0.0-canary.7584267ff.0"},"publishConfig":{"access":"public"},"gitHead":"fabdf055e5efb9cfb69ee02c46f968eb33e417e2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fabdf055e5efb9cfb69ee02c46f968eb33e417e2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.740ed33b.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-fLSVz+KgfqU9f8/9uD48a6xQ3e1nyQfsq109CC7orjYtuHn1Fo9yOY3/YZRIF02N1uuE0GVhTsfMPRGopI4+Aw==","shasum":"0be304a4b0cb4587495cdf2f17ccbf024939c65c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.740ed33b.0.tgz","fileCount":45,"unpackedSize":244579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/eS0CRA9TVsSAnZWagAAsXwP/2mAm0rc6cCkPNSgEV5k\nB62e6BAHHmTHui1MV54yGZHM1nv2gUGKlfyg4yc15DT4eW+wI2c/3rSncShZ\nGP2gPeuXJiAm6hkajPNeZB5uHHjI39bWEBTMXTkJCZGpYJC8pvqyJyORBUMV\n/IVsEN3NUdPdQkn72a5tfvMZdoLE8DyLKHdoGkclQ4/iHpsRyN64zpXrx1ze\nVEghFkpq4RGo85QVkiTn83TmPJr391ESuNTfcy7tLZ/HfDLBFGvcnCb/raLR\nJxrH9LgL8HXWFEalSs1WvvbLd/maCjNbbPori63p/BY2a/2PwQEzrUGdHYaq\nV0vVa3klyUsZGp31nhK/9wUQHpm08hXh8Wm8DEFbMJMMRfR8S+0vFBbtny47\naizyEfgiHyuSqgij+/AQbptkhBhjAJqhu7kn34P6EKmsFT/T2ll6xje4wUiT\nX19qZrNCTDh/2j7Ft9bem1pTqiER2GEY6LNItIQsDYhAlVXRahOr6VNJBSoY\ngPECMfqL9sEqgMi4zaxFdSi9eNRJI9Uxzg1NbsrBiGQ3CWOxsATXTxlD7kst\n5lyC1ELd6DLBOI9bCW7kHN2hrynKDaEevEXaA4kfvkZJLrDfK1/8wpTMzYlI\nBnRBwizQD6u284v4Cad6zRB8lYNQsDzC5OXRng2Z2BgOUwI1U9BJxOP7tmQr\nmXL/\r\n=j4xG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICMigTH3hNsG7HprwlR75z1UZPNHsPPoozZfvIHtRmMYAiBJOCwdtYS9vFDJWqiWypnc8+uIEdTxg19cpqjCk7n8og=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.740ed33b.0_1610474675477_0.3594171658784677"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.c5c541b1.0":{"name":"@material/mwc-list","version":"0.21.0-canary.c5c541b1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.7584267ff.0","@material/dom":"=10.0.0-canary.7584267ff.0","@material/list":"=10.0.0-canary.7584267ff.0","@material/mwc-base":"0.21.0-canary.c5c541b1.0","@material/mwc-checkbox":"0.21.0-canary.c5c541b1.0","@material/mwc-radio":"0.21.0-canary.c5c541b1.0","@material/mwc-ripple":"0.21.0-canary.c5c541b1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.7584267ff.0","@material/feature-targeting":"=10.0.0-canary.7584267ff.0","@material/mwc-icon":"0.21.0-canary.c5c541b1.0","@material/mwc-menu":"0.21.0-canary.c5c541b1.0","@material/ripple":"=10.0.0-canary.7584267ff.0","@material/rtl":"=10.0.0-canary.7584267ff.0","@material/theme":"=10.0.0-canary.7584267ff.0","@material/typography":"=10.0.0-canary.7584267ff.0"},"publishConfig":{"access":"public"},"gitHead":"2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2845f0e85b6a37bbfaf5110a5f16284cc8fda6ef/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.c5c541b1.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-olkgKG2KYp8pEK2CTkXHV45ox7L40vojnobvBtf2RoaBWXr724tYI8pY7Bd7A5DXaVb6xkYycQ6LashyZ3xIwg==","shasum":"30833669ebc2b8132a48734c450b294a0d2df0f9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.c5c541b1.0.tgz","fileCount":45,"unpackedSize":244579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/e5uCRA9TVsSAnZWagAAeHEQAJ0xymXWPJZK+XkX6+3E\nWCw1HqrI5QjqIIyXDqWMV584efHMr34NJwIb/itLi9riIHOtM+lSQTXHh7U8\n5fxxR/70OBARKS4xoM8+KP6FcJqWVsKlVK0ruYkroLwW/WuJqs3+pMquOK/p\nClPkAyqkXd06VqUhCPpBchj7g1g/NiuHTfYIn/uO2j9QOf0/IvQ07ij0VxTC\nX2n3I0PHPapmnvwpoHuNtaI0LhKr0SaWLcwHHb2o9aOu1tvAnZqqcWrVnqcF\nH+x0Cmepe4mN3CrZM7tTHANryfgyuQ3nBIdY6nJWCXKk0F4Vn/tBTEO8VNyp\nWeJ4pZpLdU4fWylHmABaS0pmdQhx1AmgeDqeO4JU076iu+mtD9xvgm4WdEar\n9+lyYxX7oXiaDmEUdoIBIMOjX7qNUYa10gET0CZBdulPV22i4cJU82/HHZuu\nU61B5zIEOKa7qG24lxHn3PR+yUsIyHrK/4yTXX5Kw3kI6v74uDcmzsoPvDMA\noXf31IlDRPg8VYYnGlIlY+3vCgCW6/XWmMu5PWlDaIkwoPGLKQZ1u00QPiID\nAD3PRYOWxh3FYyE3jRw08WAjmFVq3a8Wdyoi17P/YI8s8i/a2dfTS8AS1UkG\nFK9mvV52qu0+XbDI9bg10+BY1xu3unxSVBr9WH2QokamE0digQGI2B6NShEU\nagyc\r\n=9mUF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC3OuMFDJ6PmzRcuXQYsyzJMQAGBNksGB1O8Tb6MjVZiAiEAv8MWewvBIWqpZ/z20z7d2SYp98xR6uShKixUTgwp984="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.c5c541b1.0_1610477165750_0.899852495003763"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.06fe9d90.0":{"name":"@material/mwc-list","version":"0.21.0-canary.06fe9d90.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.7584267ff.0","@material/dom":"=10.0.0-canary.7584267ff.0","@material/list":"=10.0.0-canary.7584267ff.0","@material/mwc-base":"0.21.0-canary.06fe9d90.0","@material/mwc-checkbox":"0.21.0-canary.06fe9d90.0","@material/mwc-radio":"0.21.0-canary.06fe9d90.0","@material/mwc-ripple":"0.21.0-canary.06fe9d90.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.7584267ff.0","@material/feature-targeting":"=10.0.0-canary.7584267ff.0","@material/mwc-icon":"0.21.0-canary.06fe9d90.0","@material/mwc-menu":"0.21.0-canary.06fe9d90.0","@material/ripple":"=10.0.0-canary.7584267ff.0","@material/rtl":"=10.0.0-canary.7584267ff.0","@material/theme":"=10.0.0-canary.7584267ff.0","@material/typography":"=10.0.0-canary.7584267ff.0"},"publishConfig":{"access":"public"},"gitHead":"99a3aeb2c1659185c9597a59e5dc7599bbfd52bd","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/99a3aeb2c1659185c9597a59e5dc7599bbfd52bd/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.06fe9d90.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-LL+0xzMEr2uirEg4MVAbAAeLjX0fT5Nwm9xIn/xQ4OGF4AZfIPBLGmU3R+bc3KdJQBSZE2KMijRft9UFxHIv2w==","shasum":"a8ecd1c9645952119edd80b318ba6700a7f9996a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.06fe9d90.0.tgz","fileCount":45,"unpackedSize":244579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/gzECRA9TVsSAnZWagAATn8P/0DfUt/mIxiuBcu6d2I1\nvsdUeNUDPUt1w+vSW0kVUFenu7iarAjt9jzyvjRVwz2HjrNLMEMz94icZBYk\nL75pzMNHxed3pBK1VrOTNyCsIx2Y31ez+PXf3hvKcU/X4OhdTpwUYw+xfZQr\nwViXW5xU+T8sDrghPd9O15w+RC3gETBGQnpMOMs9M1BpFcljeoXEoSnIv3me\nWFOf1zJbA5bn/WNMOGDE9gqlHLjPb5UXdjdKE48pvwA1Km4Fh9VTlgUPLn7n\nzTSl+2uwAFr7TZh9qsiTPPqy89TmXPqsQedvdE2KbHvIL0oVhPxne/xSxxRj\n97jM222qhauNaBqAqlSNWewIQlJfkY2sMewPT0v6Ih9AaLxEY42TmekTPOtK\nGB28vkioxlb4abO8clnAKSNzBrL/l12dd2RCcwNf2TQxhtoHfa1piUOZTWUK\nNpuPtYDdTN+NqRZfYR7CLTxomQ+SlUI2GjiRtarYmQJoQ7ACFe/q368yNbuk\nC/qdDMrBDKpEIa0GF/ehzM0CfCFMStCH8rjEKnlHmhgBYZBI4LlYUW2tQvi2\nWG8PPH4wlvcu44pM2iX/Gh4dqQ+6fQKWBtzV7Dri8F32vqwPU5OV7qKxIKLX\nMcVDhhEm6gJjE5HUFTxDyTPYV2xwrPaLqxsvV66/y/OKxLKCk5ET3Al8OUg0\nsaXX\r\n=IIkk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDQVWWWaCmZEdNHSRM4j107sgcZL8ZivHMbcSGhlycRDwIgJXntlkyw7NLGOu9pE4CZzxNCz28/Gnb59pFYNX2ZLh0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.06fe9d90.0_1610484932153_0.616385983535704"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.269eed01.0":{"name":"@material/mwc-list","version":"0.21.0-canary.269eed01.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.7584267ff.0","@material/dom":"=10.0.0-canary.7584267ff.0","@material/list":"=10.0.0-canary.7584267ff.0","@material/mwc-base":"0.21.0-canary.269eed01.0","@material/mwc-checkbox":"0.21.0-canary.269eed01.0","@material/mwc-radio":"0.21.0-canary.269eed01.0","@material/mwc-ripple":"0.21.0-canary.269eed01.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.7584267ff.0","@material/feature-targeting":"=10.0.0-canary.7584267ff.0","@material/mwc-icon":"0.21.0-canary.269eed01.0","@material/mwc-menu":"0.21.0-canary.269eed01.0","@material/ripple":"=10.0.0-canary.7584267ff.0","@material/rtl":"=10.0.0-canary.7584267ff.0","@material/theme":"=10.0.0-canary.7584267ff.0","@material/typography":"=10.0.0-canary.7584267ff.0"},"publishConfig":{"access":"public"},"gitHead":"537a9df54fcb929f413d5ba5af0dacf0e2654c82","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/537a9df54fcb929f413d5ba5af0dacf0e2654c82/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.269eed01.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-SefDSti9VvZt4e/tTqtmEE+DPy62RLaYlLI0LI0l+Yj2h2nyUXnRN/HakRymz147P6C2iv92+EEj/rFsvgJ8Rw==","shasum":"37f6043c926582685235879240d23143b4284b67","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.269eed01.0.tgz","fileCount":45,"unpackedSize":244579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/2oTCRA9TVsSAnZWagAAONMP/iE8O0E4i9AjfRgFGOfj\nEiQx6POIu0I+PhbXetPxNNt9lOAb7QR3LO5XZlf3FIB07AuKOHGLun799WUS\n/p1IocOE60oMm3xKD7lzYQNZqxqCbN3m5xMB2ThOvsctQ+Ndw7NJHEAtgjbT\nsgO+wahIREqQscDMA/RKfc4BVRCPp1asxT25khuEW+RhTutaRBtz7f84ucfj\nARUn2s2hgaFIJ6lkAnGd/QS717Mc0o8pZuSFAmSl6zBg49R4N3pn7pU0UMe7\n6iO0ifs3V6xFKFtDLX/tkRp6/NYGNAwqzwHDoHxHA5G5BMr4BQx4hhlL2d+k\ndQHs8aYQWw/5GNCJEjkBPm446pH7BQfPcwhNGbjIEU3WGv18usOjiltEtFJ7\nPEVQrEazNkEYZU6f0gmlrRIZp6fqMGaX3SnEtrZZnPI7rC2mJIUsfNZve1yJ\nN70cv7AsisIoOAnf+ZP/PmMg9utTYHk/v6osQtE+r9RY9iZOGW5pLmaob2Zh\nx2FtT+n0/orNP9eodeeaCDtaFOGxHUSpaDeI1+CQFq0hZ+kDdtYhCjCTpxun\nhmJ8sy1zLAusX0fUsc580dSCsEF7zFC8jurVcwFC9+dBjIgEg4gpMIJPHhUM\n4/317dpQoNYBqIsLC1JjSk3cqVe3HNkJqxr05M2N1y7pEShUWMTFWgnHEroB\nDHUv\r\n=uaKh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDgLSuf7KBNRLwrxecQ37/eHByAxYc4htu74970EY2DpAiBLSP9549I/nTtSJVhKEpOvceCotbJQRmpspErrZvUetQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.269eed01.0_1610574355336_0.8759865025137377"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.8c075f35.0":{"name":"@material/mwc-list","version":"0.21.0-canary.8c075f35.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.7584267ff.0","@material/dom":"=10.0.0-canary.7584267ff.0","@material/list":"=10.0.0-canary.7584267ff.0","@material/mwc-base":"0.21.0-canary.8c075f35.0","@material/mwc-checkbox":"0.21.0-canary.8c075f35.0","@material/mwc-radio":"0.21.0-canary.8c075f35.0","@material/mwc-ripple":"0.21.0-canary.8c075f35.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.7584267ff.0","@material/feature-targeting":"=10.0.0-canary.7584267ff.0","@material/mwc-icon":"0.21.0-canary.8c075f35.0","@material/mwc-menu":"0.21.0-canary.8c075f35.0","@material/ripple":"=10.0.0-canary.7584267ff.0","@material/rtl":"=10.0.0-canary.7584267ff.0","@material/theme":"=10.0.0-canary.7584267ff.0","@material/typography":"=10.0.0-canary.7584267ff.0"},"publishConfig":{"access":"public"},"gitHead":"8757321e04ca4329877d8b8c9924f78bd58ccaab","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8757321e04ca4329877d8b8c9924f78bd58ccaab/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.8c075f35.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-EPI0/JvDova9e0fP1frMt5u90Nouq/GYgihPIqexEye/v8t75M1pB4toQ9FDRX+3gPGAz6AMFV8Fv/p91c5Ipw==","shasum":"4b33df4e3da475fdd4dad72617ea4ed68dee93b9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.8c075f35.0.tgz","fileCount":45,"unpackedSize":244579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/31GCRA9TVsSAnZWagAA1ggP/26wu5Lro3RLrgy1gQ5w\ns4WIZKT+oqdwJ4F1Ha07LUhQBTIU12hJotd/5WDVs9eWsjYyH+sBCX2DES9I\nORVATEL9oPAuuwD04efrpnRz0YzQfajGy5blIQj0qBD4PMfeu+Qt6yKPWlnJ\ngpBSk0eIFlheJ0klFSi3bioTDvZB7Q/qwHRI8dDALjANMdAB87qDfAKSYA31\nqtREtcXdhgAZ6yKUYmJeRBD95pbkpg0A98QMi8J6zhS9wco0Ii8Sg/os990q\nDBgohzvq6y3w08YoKUT6VrbNOTr6xy2sGkCKpKPIcjm3MWDCsQw1m+4b87Ri\n5Wn1CzHmfegcUHW2/OUZtmoMTf0W8JFg3gkb5pLPzJnjtx6HyBgCVyuQbtCG\nXbL+JGugsFerW9S1TWTYMZZ5F/YujR/QhEOS0SEN+HwZELhfdgV4h00Fah/7\nFjoCfjDtA38qUd4CARuoRUMglPk/1GFYlJyUhxV8Yg/WtAohXtJipNlnJTLH\nelMfo9EGHsBkPknlfgeQnnD5TygC0iPcpralEbNFTmYUiLPXQXbnx3arHYt3\nj9rtjndCJZ/bxsKQ3BE12rb8MWhXrUQnq04CT6Ze+NjZcp4nQmzvpQNJfolx\n0lewogi6Kag4TgxZZ68iliuWFtJxK6hb/2DtqfLDaVsEFXG74MiwPGruHcom\nt84q\r\n=pAUn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGB1bKASo0Av8LL5uWObIbxwNFSaYGTW3hRFma64Aw6hAiBXFR5KA4FEd+Se+3FTHQt5EFtALZ/+4jnSXY4oIGUOgA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.8c075f35.0_1610579270398_0.41725516734365353"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.3cda381b.0":{"name":"@material/mwc-list","version":"0.21.0-canary.3cda381b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.7584267ff.0","@material/dom":"=10.0.0-canary.7584267ff.0","@material/list":"=10.0.0-canary.7584267ff.0","@material/mwc-base":"0.21.0-canary.3cda381b.0","@material/mwc-checkbox":"0.21.0-canary.3cda381b.0","@material/mwc-radio":"0.21.0-canary.3cda381b.0","@material/mwc-ripple":"0.21.0-canary.3cda381b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.7584267ff.0","@material/feature-targeting":"=10.0.0-canary.7584267ff.0","@material/mwc-icon":"0.21.0-canary.3cda381b.0","@material/mwc-menu":"0.21.0-canary.3cda381b.0","@material/ripple":"=10.0.0-canary.7584267ff.0","@material/rtl":"=10.0.0-canary.7584267ff.0","@material/theme":"=10.0.0-canary.7584267ff.0","@material/typography":"=10.0.0-canary.7584267ff.0"},"publishConfig":{"access":"public"},"gitHead":"d660dc72de8b9d23247ab075b6f4f44053c9cb70","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d660dc72de8b9d23247ab075b6f4f44053c9cb70/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.3cda381b.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-txrYEw7oq56gvC+rnJ9/74Yqp2onZMHtRtjy2pvsqEaeuQolj4WGMZqoWGDUb9O6Pp3DFbjiu5HDfETY2cI+hQ==","shasum":"d006e2f1cca8e22e7ebf7d17671b389da7792861","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.3cda381b.0.tgz","fileCount":45,"unpackedSize":244579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/4qyCRA9TVsSAnZWagAADAQQAIJik5dORYU3TY2ruEmq\n81XMdjxgX7KGBZ7bSu7Msi3vrBiMWPRsU/mO2l3Q5QVlPPub7DFu4luqojRy\nctbX0XXFxoC95bpbrJLDG6lZLHVYOE7nHPULU2rTjDRGeRr+Ww5PYaa/gnrV\nMemLPB/jG3Uv2LqqP87xW0hrXhp3xD1OtfdLatJXtFUFJRp3yaq8cpOCTUta\nHmWGrEVsNRyU+L+SNCg2AONOvg6HLyj1F5Jgk28vUU8hKrx5uVjRP2s7fNhP\nu5fUO3OLLtAIUnrAXfYYBDDtGzPHSXGBqqY0c4y0Xumz9g9GiUosbjGAWjcz\nTuLU2szHGaGI7c6o2KpuaOLdPFSSZqegKD7VsmuYNxnbDPfW4MH6EcM+x3Bc\nEYj8ZMW9nnHbAi7EKZsnOn8YbQG19gYfHBh1R0zRQuJ+l+LOXnJyGkV/UzgM\nNrE1E9NlpEsz6AyVFSTljh+jXstsqiQyYjo6K6DC117he98hwMwfNst9HagL\n1m+QqhHb7VKq9tCzDVQNU6YwJVlrOU/EPTH/lGAE56K0tqUxZEEoEwyRFFXr\nVdFZyZlOHSrcCP0epb8gS8/zxpdpN5SVyshQ2mP50f0jxs0Ob5Bzd9hQapbP\n7uDJEyZ9fBm/lAkr0o0q5im6KSn1f2MEqHnHly55eTX1xcJsWYg8PAS+m34Y\n/HWs\r\n=aOLa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBjNmXsbA0tfVvNP9vcgTjHiNdGtRE+J5imfyYm3sUMjAiEAttYse+IBBBA1nJ55+eIZDp8p4g8SSmfpMhaklka0X2E="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.3cda381b.0_1610582705578_0.8695366716982047"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.bc113605.0":{"name":"@material/mwc-list","version":"0.21.0-canary.bc113605.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.772cc1068.0","@material/dom":"=10.0.0-canary.772cc1068.0","@material/list":"=10.0.0-canary.772cc1068.0","@material/mwc-base":"0.21.0-canary.bc113605.0","@material/mwc-checkbox":"0.21.0-canary.bc113605.0","@material/mwc-radio":"0.21.0-canary.bc113605.0","@material/mwc-ripple":"0.21.0-canary.bc113605.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.772cc1068.0","@material/feature-targeting":"=10.0.0-canary.772cc1068.0","@material/mwc-icon":"0.21.0-canary.bc113605.0","@material/mwc-menu":"0.21.0-canary.bc113605.0","@material/ripple":"=10.0.0-canary.772cc1068.0","@material/rtl":"=10.0.0-canary.772cc1068.0","@material/theme":"=10.0.0-canary.772cc1068.0","@material/typography":"=10.0.0-canary.772cc1068.0"},"publishConfig":{"access":"public"},"gitHead":"ec7a00c7b7cf2145c971f64e88b375c09a5409af","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec7a00c7b7cf2145c971f64e88b375c09a5409af/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.bc113605.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-uaTHGwyYXlZJ8GYG5mDb6ZtbSChQyQB1oMGsBQwzFjhvsLo+y1T3aIakrV/3rFYSz3v35WV/aFTkO1DKnf4Hug==","shasum":"1c8a9f8b2cf19ff713ec7c5e1cc5ae1818737d40","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.bc113605.0.tgz","fileCount":45,"unpackedSize":244579,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf/5RGCRA9TVsSAnZWagAA8KAP/RGVpIZ/mTACjhkDyz48\nzbKIYICDXKhWZ/f+OU4x7Ea/cNF/M0brxp3Db3pjjXf4EaKanfCrjHvv7B8M\nmNlTDxVCTqUS7HJa4k2OmsA0U+tbNapBj/Qjklja3QXrhmPBAWdZhC04kko0\njZaw5EUho3T39q9gKB+JU3aPeS/7jsjFuDTamWsnpDNGQi546vpuyj1wAE5l\n0Ii4vLSOPHzyp0YVIjKgRUvRJ6AeT6zRY41sETK0G3G4LVMBdvd/EYRo65xT\ndIwg3E8PB9XAPd8BokX0UwmsAtRfO61BKgt5l43kS+yQfugsUAvKZnpNQdIL\nfY6T0INnhizQRZga4GOLmzrcnsmY7DWyoQNbkCuCNM3kI0De52cF9BhiKPTm\nGjLhO/pNUOeMxq98m4TQDBsBip7kman43ZHA1/XSA+MEzhrVZk/pNZaQj/th\nR5hzMN4pWKRXte/ZFFXhUkeho8/siv7WQTzmK25Ss3q9a/HPM2x/M6RtFNU+\nQ00NEGnSW+WnbkhMHvhfTqSlcKCs1d7lEyIxM7cP0VLJ7RIjQ4N6QEZBkbh8\nk5JVkJiQYYHemQmPw6VGIgnGFp8fmeD3xdTHW/HuIZNB0LWgnBEcbJi66xBp\n+JzAyN2eMnHJlnOx7YqqBvk6CIz1w58OwZfe+ro8K2QSUVtEf2fsSBWHNE0U\n2VGH\r\n=k+OP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMLSn/Xc57EmHI1uWx3hrbJymSVbhvzfLH0M1NxPmC0gIgFShqIrQr9rJH/JGSZ6Gke+v2I16oEHPrUQjWlA+wVoo="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.bc113605.0_1610585157703_0.24421790191695059"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.0c1d6ff9.0":{"name":"@material/mwc-list","version":"0.21.0-canary.0c1d6ff9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.772cc1068.0","@material/dom":"=10.0.0-canary.772cc1068.0","@material/list":"=10.0.0-canary.772cc1068.0","@material/mwc-base":"0.21.0-canary.0c1d6ff9.0","@material/mwc-checkbox":"0.21.0-canary.0c1d6ff9.0","@material/mwc-radio":"0.21.0-canary.0c1d6ff9.0","@material/mwc-ripple":"0.21.0-canary.0c1d6ff9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.772cc1068.0","@material/feature-targeting":"=10.0.0-canary.772cc1068.0","@material/mwc-icon":"0.21.0-canary.0c1d6ff9.0","@material/mwc-menu":"0.21.0-canary.0c1d6ff9.0","@material/ripple":"=10.0.0-canary.772cc1068.0","@material/rtl":"=10.0.0-canary.772cc1068.0","@material/theme":"=10.0.0-canary.772cc1068.0","@material/typography":"=10.0.0-canary.772cc1068.0"},"publishConfig":{"access":"public"},"gitHead":"5c7f60619e642de2f6951662670ef490a6e46e70","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c7f60619e642de2f6951662670ef490a6e46e70/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.0c1d6ff9.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.20.2/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-C0bEIJhfycIQZjJhXH63YL4y51CbZUksM09Y2ypfDTVtKbVPbmfNhFfp4DPcd9leOJXesTtibn8en5IFXsOsZQ==","shasum":"2f01be7ba783d9ad72a0c67c3c2e07a2d96a6921","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.0c1d6ff9.0.tgz","fileCount":45,"unpackedSize":245010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAfaKCRA9TVsSAnZWagAAxEwQAJqWFxSwHfqSv6jFVcOd\nUxbqTk3KhsbhgIPQwNzFeeR2EJRiNziJ7zKwyg9cpt+rF4W/NBunBbZnzYGH\nPPZzY/cNlZM5Lo25a+hbJd/iiEb3KWVCKz2l3g45M3DdVRjEGUmzG3P77cDg\nHmUAizzpv3g91wA492dEL8+3Nncim3j++2YhrDWMe/xH2xfne7YvxW87+hJ/\nEP1u0Y4paR9TdE8pm0IMM1kjCDK6vJiepnzZFZZrWN0IK68s4CS9Gl39OZCx\ntrMbxkET0Qks1RDwAGGpqGTKS9ldemqeItt0UQCM8COoo7sgCk3sZ/FT0uQv\ncrF8MBS+sSPWBYF3p3hF1P0HwVkLrmmsQsyScr7k+XGVarHkSCeDD/X+GKmp\nRXA0r5JRz1/aS6fXsgdbokxMfGE536LvA1oprCbEtLstJAh25f3987si5oNa\nh5RRXSypH0npUq1wIv85CtP6B2EJy6V1xoUOidxzhSQe9/TJ+iwLdBz5/vyR\nPnv7cNEbyOj/ohNKDKLXRTXWPKq+xzF9QiZW1LNud52YICrYEkz8+E7/y6+A\nvldycw1w8exrydkbYfO4K+lC64uSLxLhfve952PPaCrytk+ZTYLrhpcxuS24\nVCFgbf85FA10CqqnRc/KI4QXcDyfZ9OhkH3RYNgZGRtJMjFPTkwlbcCqIe5m\ndp+F\r\n=JEnO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCwuHzZ/sW90imb52jbvlpVloJ4On6Q6rA/rgFK2RTsQwIhAKju2V94yTt5DAw96UWiZ4cFb8XGGjDSOvz0d1JoyLel"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.0c1d6ff9.0_1610741386094_0.02532206506631507"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.b4332e00.0":{"name":"@material/mwc-list","version":"0.21.0-canary.b4332e00.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.c7c5da28f.0","@material/dom":"=10.0.0-canary.c7c5da28f.0","@material/list":"=10.0.0-canary.c7c5da28f.0","@material/mwc-base":"0.21.0-canary.b4332e00.0","@material/mwc-checkbox":"0.21.0-canary.b4332e00.0","@material/mwc-radio":"0.21.0-canary.b4332e00.0","@material/mwc-ripple":"0.21.0-canary.b4332e00.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.c7c5da28f.0","@material/feature-targeting":"=10.0.0-canary.c7c5da28f.0","@material/mwc-icon":"0.21.0-canary.b4332e00.0","@material/mwc-menu":"0.21.0-canary.b4332e00.0","@material/ripple":"=10.0.0-canary.c7c5da28f.0","@material/rtl":"=10.0.0-canary.c7c5da28f.0","@material/theme":"=10.0.0-canary.c7c5da28f.0","@material/typography":"=10.0.0-canary.c7c5da28f.0"},"publishConfig":{"access":"public"},"gitHead":"823027b19badea63e32aa35bfece324daba62e19","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/823027b19badea63e32aa35bfece324daba62e19/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.b4332e00.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.20.2/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-HLjy8W/Qg0Y5CIToyWTfRgfFxnUPwPu9xxeLnsp4fNwZOz7Imyf3VD8voN6yGpR+DviqpS8UoaJt1d8nzBf51w==","shasum":"f39094995435811ab0c70ef2ffdac158c4a14b54","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.b4332e00.0.tgz","fileCount":45,"unpackedSize":245010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAhI9CRA9TVsSAnZWagAA+kAQAIntzVg0uAMV4lFvj8c4\nU93PHbLAjDWjzUk5L/IbaVr+iqA3CRQHg4ohhdNzXhBlUi/5H12HgDWp/YVo\n+IOvjEfVz7aqLsGn9VUCMo3C12H6HKFdsd8LhvKEQId5fOYeDteVXsCBxFn5\nZ2y4CBNyyFTDhsYGAzOalfBYOPSZkU5mRrtBnFq9amW0wAkc9mhGbDznNbvf\n//aa9u1ycE6q1uVEJtlSYDrZH2EVc4jVnH+ZB/0R3mqL3av9G7gKKcOImtVG\nYYOzsueJWDmt/Fy6KDSdpWy9CHSsKm9VFQyObcLh3C4GWaoRHiGmav6aaPei\nKd7iGxsSQJ57A6Vve5yeygt4Qyis3FZQ7CKt8dD17xcokGwJeOIf+Va+zJAF\nmHQJcgjD8ddUn/okDMwYx/vy6GRtobGiBfcFUn0mXfwX+KyVvIzi5eg9a3u1\ne3IgiKDS2RXYVm9GH7N2qGphRjhs2enlmeT0+XlY3wQZ9j6LNy+D24aA7K7a\nkvWmeooEjSTqzBquXjM1qBJxoY9QowQvTjpp8t6PpOZDZXzm+WUtaEc4Z5L0\n546Ftf/DNFiSYv1SsmVDfPpD4/kG9ghr3AAEEQXNSZndb5ol2QaZ1H4a2ANw\n7YUktF0QHjWXKFo3Ey3A5jxXuwaq7UqmKibBbptLmDvkNbbrZHwgKyVkJNN/\n/chU\r\n=46Tl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDAp9r7sMrJdpsfvhT85S3RZDz+oDSkcC2Y6HlYAgIRwIhAIMyuEVSgFvCH50T3ZX6LqE9PmtK49P1BxQBZvzVrTBW"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.b4332e00.0_1610748477230_0.516408390792044"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.2899691d.0":{"name":"@material/mwc-list","version":"0.21.0-canary.2899691d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.c7c5da28f.0","@material/dom":"=10.0.0-canary.c7c5da28f.0","@material/list":"=10.0.0-canary.c7c5da28f.0","@material/mwc-base":"0.21.0-canary.2899691d.0","@material/mwc-checkbox":"0.21.0-canary.2899691d.0","@material/mwc-radio":"0.21.0-canary.2899691d.0","@material/mwc-ripple":"0.21.0-canary.2899691d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.c7c5da28f.0","@material/feature-targeting":"=10.0.0-canary.c7c5da28f.0","@material/mwc-icon":"0.21.0-canary.2899691d.0","@material/mwc-menu":"0.21.0-canary.2899691d.0","@material/ripple":"=10.0.0-canary.c7c5da28f.0","@material/rtl":"=10.0.0-canary.c7c5da28f.0","@material/theme":"=10.0.0-canary.c7c5da28f.0","@material/typography":"=10.0.0-canary.c7c5da28f.0"},"publishConfig":{"access":"public"},"gitHead":"ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ad2d9fc5a5b47298a72fb5fe6e82b8c7c9ab8e44/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.2899691d.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.20.2/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-gTp4pW1pvCOw6MVs8L8gzYonSLeWAD21P+2G+krwnMU8lWqCeHNrOhVbnq2skk1o7pZiXiVgQtQn/LapJ8X3/A==","shasum":"2dfc2f996e10c7ea91f4fa5eb8b8fc659b90a173","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.2899691d.0.tgz","fileCount":45,"unpackedSize":245010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgAkUkCRA9TVsSAnZWagAAwe0P/37vtY0nF3NacEXFmsRe\n3+eEHl0ddgFWrOVNJxmajEq6+qfRgmmCc2pemaD5EdDE2x+TmFJSlSbwPteK\n0OP7+93NBafLQmd4s6KP9x6UyZ46yhhnkmSAr+IFWn0HluYmNajuKxzCOGV5\n6Xz3ut+bGdYamQKLUmVl1Um+tj53WJ67CtMcxkfa5vNDwxaSrh1Qzqjc2sPl\nAJIFyWHg0ZMKJsSkyDKufnoIzH2CNPaZBcbYiwUC3FHd+Vl2UGg6iod59q4Y\nEuK5ttBSKg8kJIlDHK58+aah9PnkD/flM5Esofiq3FJCgKj85TJ6M1xV2tuI\ntd9NLxBr28SSR/sGyhZ24U3ZKFatjAKVgWwz6WQLiH6nxeVZZcp6KzipbQ1K\nsr+vPs8qBOBXNjglwtrd8ghhdTA9VI2+KV4ByIqeea8Mk76Cns0RrFoz/A2z\nxIOHXTNtW58RTpOHTFqy08p029SaYJcx0zJP7TTWkNSQg96zVqdxweJHzWQ8\n44vqDGnWAtl0JZhurDwZCQ/WzjogAT4TIAfrUPKJzuSFTL0yjVWiSPB4y+jZ\nvflkaZsgKHqEvWU1wa/3kGw3OhGgGxEhNfT7WHs9GKKG4/MJfPFOXCqNvLWm\nR5fzYxhBgGda4wfxc8epRZzlqiamIwhHoVw4DQ1DYWjZU7IYNLMUX6dnWxOB\nbFq7\r\n=DdiI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDaZn24mTBE9vPF17/WR/VNi3u51g3yu4ncQxh9hAf2VAiBuMY6wCbFHNko/bE5VdV9bT9VaBaI5etH/BqompJk/Ow=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.2899691d.0_1610761507593_0.8472326791344837"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.fe73953b.0":{"name":"@material/mwc-list","version":"0.21.0-canary.fe73953b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.c7c5da28f.0","@material/dom":"=10.0.0-canary.c7c5da28f.0","@material/list":"=10.0.0-canary.c7c5da28f.0","@material/mwc-base":"0.21.0-canary.fe73953b.0","@material/mwc-checkbox":"0.21.0-canary.fe73953b.0","@material/mwc-radio":"0.21.0-canary.fe73953b.0","@material/mwc-ripple":"0.21.0-canary.fe73953b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.c7c5da28f.0","@material/feature-targeting":"=10.0.0-canary.c7c5da28f.0","@material/mwc-icon":"0.21.0-canary.fe73953b.0","@material/mwc-menu":"0.21.0-canary.fe73953b.0","@material/ripple":"=10.0.0-canary.c7c5da28f.0","@material/rtl":"=10.0.0-canary.c7c5da28f.0","@material/theme":"=10.0.0-canary.c7c5da28f.0","@material/typography":"=10.0.0-canary.c7c5da28f.0"},"publishConfig":{"access":"public"},"gitHead":"2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2464e59ad6a1d74aed7f8ca3477c1f8d244eb8b9/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.fe73953b.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.20.2/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-QEHCkzLtXolWV5rFNsv0d0MGDIniTPwKshbwY1IDBaDJYUzLXy4ISzFe/fLW/G2ooDrmCniJ8GP4mkL24vDC/g==","shasum":"aec3487e7eabdfc01a49c08cc73251060a41ef80","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.fe73953b.0.tgz","fileCount":45,"unpackedSize":245010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBzFUCRA9TVsSAnZWagAAz1IQAJCYoOuTjfHcATQMWkRM\nCFgOFe60nGti69uM91rg4PyrzRrBm0l5Wau2v4FChaSm1WJkHje4c+ixGjoK\nBu7opGpOSXt5ylipqA+HEqt1bNALg7WQV9S85T1vbBolXvYbQbW0PjfSI/NT\nwyHUu+W8IWi84/s5lyeGqMdCdes1BANsR9RMPRckJ7hBGKffLS/fHms6QMtn\nDG1x/yIL6Y6ug/Yvx9SqTuJX2wDfUxTYWv4tKddi/4xKqp/KxTUic4VdGtz6\nTRnByqXp+05ZiCRDZMtBKoo40lXgazZ2mvDSAb5x0ve/IhPgoeQYYCqI3/ls\nyVVUQZxpN+1qR3ubHn8tbh4VlWPB012FJD2ZEjwINs81KTdKYxMKU6YonscX\n0YLn4HvQfVwewIZZDIJYD0GAP8pJoVeAmLUoDB6RQ3vpjEw6fBRxcp9KxxpK\nGJMmoRgfqv40E/JACYZ4TEQz3FVnJPNTxFwoGddSam5NTIP5onqkfRXxXGCg\n2wFqnsBART8bRmBmN05htYTe09PlvJhMExiTYgrbl94kO2NS47oZGLOxIHPu\nagLRHW8lGqGlwEOaPBUzYPe7rWODD1a2LPlq/y5Cb/S5II9x14chfO9qOZG3\nkXDIFqLxDjVMrEXlYNzsGSv6NYlnh7jQIp8Z7RZ1AfHaoWpf76LGDgcOJWe6\ndgIo\r\n=3La4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCC4imT2kTBWxKf++CtD+2APwyWhogTWSsBTOFLRY2G2AIhAKgP9EidzJOaoMroQiHPDDunG1u9An7ozg1QR6sDHhy4"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.fe73953b.0_1611084115915_0.5245424014388484"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.d3a16455.0":{"name":"@material/mwc-list","version":"0.21.0-canary.d3a16455.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.c7c5da28f.0","@material/dom":"=10.0.0-canary.c7c5da28f.0","@material/list":"=10.0.0-canary.c7c5da28f.0","@material/mwc-base":"0.21.0-canary.d3a16455.0","@material/mwc-checkbox":"0.21.0-canary.d3a16455.0","@material/mwc-radio":"0.21.0-canary.d3a16455.0","@material/mwc-ripple":"0.21.0-canary.d3a16455.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.c7c5da28f.0","@material/feature-targeting":"=10.0.0-canary.c7c5da28f.0","@material/mwc-icon":"0.21.0-canary.d3a16455.0","@material/mwc-menu":"0.21.0-canary.d3a16455.0","@material/ripple":"=10.0.0-canary.c7c5da28f.0","@material/rtl":"=10.0.0-canary.c7c5da28f.0","@material/theme":"=10.0.0-canary.c7c5da28f.0","@material/typography":"=10.0.0-canary.c7c5da28f.0"},"publishConfig":{"access":"public"},"gitHead":"cc074ab80b57efe95502e551eb4d0ce6a153094c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc074ab80b57efe95502e551eb4d0ce6a153094c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.d3a16455.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.20.2/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-l7UBdzPrR+QBCo5TE7DucQ4Myh4QBwTXCLdWE0evi0xDn0HMPrtxhsFAG5CTUU57WDSygAWS/65HbzrZDOF3DQ==","shasum":"75c0e62d5da4f36fe8286ab630934e2321d83392","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.d3a16455.0.tgz","fileCount":45,"unpackedSize":245010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgBziTCRA9TVsSAnZWagAAYToP/RECB+VuUb0rM7qaX60Y\nPQmJP7txAJZHk0J8Kho/ZJm8g4PLAcas0AQVUvjvkiykvMK7h/vKbK77Pq1S\nPBl1f+T6WyalixLu2DkcfxiJad3K6jq5xxytq0ppwruumoppCCOZ1iQvtQKM\n/4kBVlbWP7QnMySaIozxE1tc6gUZx6Do7f82dejNDohtSgZrxKVXvaFi57Rq\nEGSJV90Vu1KE63cLi+Kwr5YlpfCg9+Rj9o9ny/tecjzbIh9EvgWVHRCiHUyB\n5Q+4GMViVaLAEkRvyEAxWy6fnSmSh/wqv1qzu4kVsHi7hmSRMbP2pIO0KuoB\n8LfRw1uSW4v01m02CWK8c8HOTpHjSCUCjEJrYsvvhp26uPi64PZkly/4qtnz\nh62wiSpTl+txtB7HDvfkxWIFjf5YKeif+T92ED59txNur0k6qn3jYWCXznag\nplA0SUpNzU9l24zDkPD5OhEj5OUffrSDVXsMRMdNDAC0a/ZU8lo2b5cMAsQW\nrmbKVKl8pn2wqZnWNfLNp76NzZr5AWTpY5tMgAo/Y/L9QzzAzSbzNSztoI1R\nWElhnh3mf2mn2K6GKs9v9Uygc+AzRp3rI8HRG1hB6ZLcSh+o7Ouvhc3gNJUI\nYu9V/RfxmSjMURnkC++SZczK9mf8LwEFivjxF5HtOKrVZNr3z1Ve75GRJ97i\nGZgo\r\n=mS6P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICl8+UKbZWLd9bAof/xlHed89r4IamXrA5RHy9g5NHymAiEA0GiUa7cnZYRB6AFBz3LzaKi4Md3eISM2LHxbPeescEU="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.d3a16455.0_1611085971328_0.5655878909062464"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.597ca1b6.0":{"name":"@material/mwc-list","version":"0.21.0-canary.597ca1b6.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.b2faa116a.0","@material/dom":"=10.0.0-canary.b2faa116a.0","@material/list":"=10.0.0-canary.b2faa116a.0","@material/mwc-base":"0.21.0-canary.597ca1b6.0","@material/mwc-checkbox":"0.21.0-canary.597ca1b6.0","@material/mwc-radio":"0.21.0-canary.597ca1b6.0","@material/mwc-ripple":"0.21.0-canary.597ca1b6.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.b2faa116a.0","@material/feature-targeting":"=10.0.0-canary.b2faa116a.0","@material/mwc-icon":"0.21.0-canary.597ca1b6.0","@material/mwc-menu":"0.21.0-canary.597ca1b6.0","@material/ripple":"=10.0.0-canary.b2faa116a.0","@material/rtl":"=10.0.0-canary.b2faa116a.0","@material/theme":"=10.0.0-canary.b2faa116a.0","@material/typography":"=10.0.0-canary.b2faa116a.0"},"publishConfig":{"access":"public"},"gitHead":"2dea4d182145f148cba1edfd7b358ed05bc6c8ea","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2dea4d182145f148cba1edfd7b358ed05bc6c8ea/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.597ca1b6.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.20.2/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-bSD54Yfm0qSjip1SppHT7yk2UBbjrRgSLQy50XAjfLOVnNxMyNW0Li3PeZz27HXcSdd6Eb3bVIN01Dd77M6C4w==","shasum":"c98ba591df94193c3303d2333d7ef8848cb7e269","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.597ca1b6.0.tgz","fileCount":45,"unpackedSize":245010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgB4CvCRA9TVsSAnZWagAAwOQP/Rs9u6g0OWnKhHbcPH/8\nn+6Kjt1YufVxVyZFQJdDNdpzjFlwmaGJeJ/y6EhpywR5+o7nAQZj63vyAMis\nC1n+1bvyuPwsRGMgNLoRZKeGCePBRkfMflb2pdk6SjU8i5KFK0+oaV+qWIQU\n3tbaZHJ4xzjM50oOrabhpRgXrvqsPcrT6FDoxiefuLccJJ1LgG5DRq/QhYRW\njyGp+V5YWWWgO4nAWUHo6ZK7do5sIjm3ssznZ2W/IbR/bhT/nwMpk6kbgwKv\nehhjOuHa0hufhOkL1hXmLTe9g5JZ/V8NNx7OSLipQcXiUefdSeWKPHqR8MB7\nt66YSCTPKzCa4S84LrMzkLf5RfuoV7DgO3yCdT+OFF6kpuCD+WB9nnC4L57e\nn1VDQtW93b7NxFpWctnvXGWnkHdcU2OpkuOcUwBlTssZCtkmNwZr+4bnYKjD\nCWiddGcP3XFfeRD4RhmYsnLZUETP9BOOdmGBgaHjVSUU5+GGhKIhtvVFcusW\nJeymlqvETglqkUR0vwCuvAXlVdpnMzsivDh3UNUQCWCGy7elRtj1IxwYLSO3\nLu6SuaaJIld3szqchsk99XNZI9xSRyhdNef1iFdIyvxrbpHhNuuwQT6jzynQ\nKwLZzyLwimtt+jPn7QmTAxD2b0yxqku/bzIKWAQol3qi0TftmL0kZzaBbE76\nqY0S\r\n=1D8G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFxMB4crAAxtCvWHv9dZAoRFmRdMdlvHXpXUMIm+4kxCAiByfNhxR9UtlCl9NDgdbITB6DUyWoyhp4LOE3pa5PhyKw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.597ca1b6.0_1611104431289_0.7644267789820871"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.3c195efe.0":{"name":"@material/mwc-list","version":"0.21.0-canary.3c195efe.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.b2faa116a.0","@material/dom":"=10.0.0-canary.b2faa116a.0","@material/list":"=10.0.0-canary.b2faa116a.0","@material/mwc-base":"0.21.0-canary.3c195efe.0","@material/mwc-checkbox":"0.21.0-canary.3c195efe.0","@material/mwc-radio":"0.21.0-canary.3c195efe.0","@material/mwc-ripple":"0.21.0-canary.3c195efe.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.b2faa116a.0","@material/feature-targeting":"=10.0.0-canary.b2faa116a.0","@material/mwc-icon":"0.21.0-canary.3c195efe.0","@material/mwc-menu":"0.21.0-canary.3c195efe.0","@material/ripple":"=10.0.0-canary.b2faa116a.0","@material/rtl":"=10.0.0-canary.b2faa116a.0","@material/theme":"=10.0.0-canary.b2faa116a.0","@material/typography":"=10.0.0-canary.b2faa116a.0"},"publishConfig":{"access":"public"},"gitHead":"5832b828afcaa6412dff007228c15a665862a145","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5832b828afcaa6412dff007228c15a665862a145/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.3c195efe.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.20.2/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-tLp5U5E3OcZJSvQ1ckPEFfmyBQaIYgZTnHVnL78/HJyeLpWqCI2wXxjNmmEBULDPzijinA5EdnkklCw+itWFEA==","shasum":"bf6a7793c4f6f61ff2e446f0ecec39839b36caf6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.3c195efe.0.tgz","fileCount":45,"unpackedSize":245010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgB48aCRA9TVsSAnZWagAA4DcQAJ8kaJNxYZiJVyn2ZM5W\nx0/u1pWgxu+NtGcsyQFUt8QfWzXSae1zTElyqSjU7MAJfC38FTsvnZmHI4qG\nMmWEqxvuaA6jinPbYrfS02pJGs2dPPm78MhG2YyvwmXin/AfdxEAa9ASFPDC\njqkUwZ80ilm5iw3J9vjlweJ1Srxhp9cmnREdkyilUaOKNuno0MrCbXHRlrzg\neDTJ4B6ri6VzsotRFemSI4e43ARazMnVoZlTVmQ+U6/VfWFGBum+CzG971Ob\nrzhed8ryIDVmCx3jl9UI2toW67f/EzfcIy03jloh7omwM2EAi4iuK6UFJ6LH\ncuzmSvzSi56Zvn1T2QREZuMv1UK9xzmTAFRDf+d82xrHDnspkyyP763fbYcS\nDbML/4ZCjW+cwXiFi91kkCX7F9F56IwtzKFgUTOd66ny6lVn9o4b6dNa7idj\ndM+vYuYHvGAkF05ameDvjjt/YPBX58l3Ev+5NyiH/gU6wdzJhTPFUPH5R5Nq\nrLxXvOfeZjHyKb0WHQDAKpXulluUivU//2gPvnAUry5LZzkpEWwPBZY/KtjO\n8sCBH6ruBK+F7ePkWQxsvsRkgWmZzUUGCZ/OIJBkeDd3Gi4Diy7zpQCi4iag\nhiyXuwEbdxkbv/Cnh/EGoysPXSg9A0f+kNTn2LABw11b4n6GK7oMwvxC0b1N\nJSGE\r\n=YGHU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCURCE/OD/MnTYKtZpRM3Vlm3qIcHyfyHvGOvU1C8j4bgIgKHYIyRJWIcGXqJCBSbSnTdNIKBdG1Rvp6S0eG0EXmgc="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.3c195efe.0_1611108122241_0.969396984586931"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.f7b8755f.0":{"name":"@material/mwc-list","version":"0.21.0-canary.f7b8755f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.0c95c9f7b.0","@material/dom":"=10.0.0-canary.0c95c9f7b.0","@material/list":"=10.0.0-canary.0c95c9f7b.0","@material/mwc-base":"0.21.0-canary.f7b8755f.0","@material/mwc-checkbox":"0.21.0-canary.f7b8755f.0","@material/mwc-radio":"0.21.0-canary.f7b8755f.0","@material/mwc-ripple":"0.21.0-canary.f7b8755f.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.0c95c9f7b.0","@material/feature-targeting":"=10.0.0-canary.0c95c9f7b.0","@material/mwc-icon":"0.21.0-canary.f7b8755f.0","@material/mwc-menu":"0.21.0-canary.f7b8755f.0","@material/ripple":"=10.0.0-canary.0c95c9f7b.0","@material/rtl":"=10.0.0-canary.0c95c9f7b.0","@material/theme":"=10.0.0-canary.0c95c9f7b.0","@material/typography":"=10.0.0-canary.0c95c9f7b.0"},"publishConfig":{"access":"public"},"gitHead":"189595c9eb20e25a71796a5720374331d50a7f72","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/189595c9eb20e25a71796a5720374331d50a7f72/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.f7b8755f.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-n2o0Ef/aCdpIAJq2VcC8rhrOpgbpBsZwIM09Lf6o9tM88BrPamWdF2e+7oc3nhy1o2G0nQm+IUjKA4NXFJ8QlQ==","shasum":"65ca35dcfda7e58788f721c249345cb06ac2e502","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.f7b8755f.0.tgz","fileCount":45,"unpackedSize":245010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCJS3CRA9TVsSAnZWagAANzUP+gO1CexX/dCN7UuC+7zd\nr/sj6/Oc+Agkokxv6+fsWpQ/2vhGC6wwGRir8V+Dumef3DtS5MGIFCReL9fk\n+OVr61Q6Wx8pKlthyx7e9gan9wjayqp681JRAbEJ/AfwRV+biamBjeECyAiW\n499KulK+UHYCn50F4aefSb2jzDUVcxzup3chvocsJb3RuJ9Qe86mjeWca2xO\nv3i/lQD6kTdxq/aw6ga2zP9BMn8FjiiSw4CrDpKfoLnKtFmVuS6gw0mt2QnW\nKB4Lk8K5OPqdhfoOGu/ZgjKBNn4JX7RQR8ckVKKIZkz4BRQ6kXxSxMzPvfzf\n3/ay5TtIY0SYkG/uruhOhw2+c+SiH6gCtS3Si8gqJXiXbaJw1Kobf9B5nyiZ\nSIml5NECWE51JTT2QKOSq7tqVQ4rD9yok/67UDSfnefwwtgt5hQQMu6zZE60\nrtoHaaF37eRXQjitUNumPsjgRf0ETjbWcQlGBsRUvzXwWWWm5AtIjrdqiP1t\nyROSeOythjlGAkbuJMTWRbaoPx4LuzXyH2KFoPCE99cNSGcg7/HjRZgQ3+Jb\nqOHZlwbcc7/mOx4kwXPFBZk6O2rKD3Y790SByW663CEDxFWoN8vwAgZ1ekkY\n4tWJKt4qLCY8cY5FJzcou4Fd5f1/6VSWijLdCC9ta/IUYe99hPv7HBtQvSdr\nuMC5\r\n=41ys\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOGa7hzd2J/tpN1a0IuAofOYlsfOQ5R94KC1B4Y96xAgIhALb+NdcbdaXuXLXANRBJdiIRoPYSlXYkSxT7jY4CfqQL"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.f7b8755f.0_1611175094557_0.17896663925131495"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.f60de7df.0":{"name":"@material/mwc-list","version":"0.21.0-canary.f60de7df.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.2ed2d829b.0","@material/dom":"=10.0.0-canary.2ed2d829b.0","@material/list":"=10.0.0-canary.2ed2d829b.0","@material/mwc-base":"0.21.0-canary.f60de7df.0","@material/mwc-checkbox":"0.21.0-canary.f60de7df.0","@material/mwc-radio":"0.21.0-canary.f60de7df.0","@material/mwc-ripple":"0.21.0-canary.f60de7df.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.2ed2d829b.0","@material/feature-targeting":"=10.0.0-canary.2ed2d829b.0","@material/mwc-icon":"0.21.0-canary.f60de7df.0","@material/mwc-menu":"0.21.0-canary.f60de7df.0","@material/ripple":"=10.0.0-canary.2ed2d829b.0","@material/rtl":"=10.0.0-canary.2ed2d829b.0","@material/theme":"=10.0.0-canary.2ed2d829b.0","@material/typography":"=10.0.0-canary.2ed2d829b.0"},"publishConfig":{"access":"public"},"gitHead":"ada07a353340882b0d087ddf967d399be3009123","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ada07a353340882b0d087ddf967d399be3009123/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.f60de7df.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-kv8N/rz4JW4W4xDM7jpui6bKlGxH5/Mzc9oqDHdAikD1Ad5RZnl1RrUyxQ5vPUlc/bFw6KvhfbyQyaPx3d15sQ==","shasum":"43f2a4c7973767faf1671df94a31ece5abeae255","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.f60de7df.0.tgz","fileCount":45,"unpackedSize":245010,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCL6kCRA9TVsSAnZWagAAI0oP/1X0VzHzlwg9SykfdFi/\n01JrZN62EBX3uNYgW7O6sYqPJmfaqaXvAsHmJEIhf22E1YqOKmNXSHWGCanN\niPmozz+5nvyXqqjdXWjLf0sbhUkqvp/tj+MxRi9+3jkc7RDsu6nweWJnlLEi\ng6ZSFPCzaqx8Ez9/p0Bpxur9Kz5UPr76LqNq4n+hHc9FrykiYGHblwmO5hm/\n5BtyfEetS4BCV6zWs1OUwworycykBqav5lEIO8+qVdS30kwmAcDK0UU2VScT\nxzXkcjTcrXEcFHZnY5lvF21+Zzc3iC0uCseZSO0J/i34/xNgQ2VKsy2R/D+V\nqb6HI3dps/GGG/2lBtLHU32xRsfQMzSfKtCk/Bdn7PSO4gm8LhEHgq/3HQMz\nY3crnYFeahxdAHrvSfbD9nEz2gyTphO5XDfqNntSzfQSn+a6DGO8PSgoMitP\nNJcGjegzD0gM+cq7fvyMoR0o+0hKoMf8aLdsGvAxKgkCRNNdPpX9QEPaQw0i\nfPY9Yy8fZ+M3tQhGFQq8pClYU98HXJ5bYRtMAg9+1v0CmLcF3RkAszjc9trb\nSkBRsIynktTCpRtmqwvVA7G5tKrzT1V5F8nLyt199mSSJ6WwtIijKI7SQIyr\nGgvWz+2Q0m1yB/rANpy6+nSxoeAEDj6WaKU05LmshadABQjVBON+p5WAFgjn\nQvCW\r\n=23PL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCCWGEh9zihQn4avjcNkXIwod367iMypsKrdubyBZ6qswIhAMfdRsJvbPAVBrwEq63EEH6T7Tj3RpAbL2yFUp+gnphV"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.f60de7df.0_1611185827402_0.9409780287290681"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.664a2927.0":{"name":"@material/mwc-list","version":"0.21.0-canary.664a2927.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.2ed2d829b.0","@material/dom":"=10.0.0-canary.2ed2d829b.0","@material/list":"=10.0.0-canary.2ed2d829b.0","@material/mwc-base":"0.21.0-canary.664a2927.0","@material/mwc-checkbox":"0.21.0-canary.664a2927.0","@material/mwc-radio":"0.21.0-canary.664a2927.0","@material/mwc-ripple":"0.21.0-canary.664a2927.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.2ed2d829b.0","@material/feature-targeting":"=10.0.0-canary.2ed2d829b.0","@material/mwc-icon":"0.21.0-canary.664a2927.0","@material/mwc-menu":"0.21.0-canary.664a2927.0","@material/ripple":"=10.0.0-canary.2ed2d829b.0","@material/rtl":"=10.0.0-canary.2ed2d829b.0","@material/theme":"=10.0.0-canary.2ed2d829b.0","@material/typography":"=10.0.0-canary.2ed2d829b.0"},"publishConfig":{"access":"public"},"gitHead":"af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af2f8cdb8d2e4132b15e0b5a79f060d43a3431d9/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.664a2927.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-arVE4fEbTjyQwIckeGnxYSTizTQ0EZybHdY5Fy9mcBWR97iPEarncDVRzFKcBsfG/6yXN5Gv7wG1SQnEtMuTgw==","shasum":"c5264d6747fc5a8cf92a777d7477a9658f588968","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.664a2927.0.tgz","fileCount":45,"unpackedSize":245959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCdOqCRA9TVsSAnZWagAAv7MP/0QB34s4Wt7b3zaKZQoH\n+ZenDiUE9KNZyAQXmWjbV4q4DTW2Kw+K99aTpEsxb0e4FVpetvsASrFSCtZ2\njbM2ZJnwEFKa0k1wuRLAk24HSq5OhRalGjolxxMYJXujuoS6P8XOoaLAtn+O\nk7TyesMHnq852/6e7+dzch0IvK35m4Y51H5lWA5zMcl+ojS/DONCrgDJaeNb\ndvCJ2xYFGFb0aAPuB0KcQyj59cQTyph3UlUjgl1vZDX8Ru8jPTwO5jgNz6Df\nMkErU/wjSXV9zPGvD8xj+4nfaMuU3iQjGvw6t2yWb6fPbVQUHUOCUYdujLPM\ngq9NmU2M+KyX1fodwBGQd5LDFfH896n91fKA9K/BK9JtfuX8tbxIIclCoXFE\nRJSUfOJSWdbaeDpMOqK+PAJUJfH1WrkdbnfkLRlfdk4JHuLlRnR2XXsSF9LB\nnx4dJK43yOt20GZv31zTdyi6lq8Oz/PbN0YbgKY5cLHreiKTC7i3mfl2uiu3\nKulhB3X8PnoUn1FiVseM6uEWX8/OpTTqwcjCGXzJF76ynVRlx1k84VIWPRy1\naXvFmznfpBeSxXKZ5/8StQBvUgucjbHGc2rt8US3Eg7N6Ye28HEuAnAoTnVv\nLilR86tNFN54czlu1qES+QbodtXe1GnUTr5FfPcZ+aP8ON+sc6zo1ARBz5nP\noCEG\r\n=B4sD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCx/saSh10AXOlfKy7ksbwF68fBpw7PoFWGAOznD07rdQIgc2xVMoTRVRpCxZrgGiJrhmjccCFtXMem0kCxcxJu/3A="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.664a2927.0_1611256745745_0.7857903713435332"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.a6d312e5.0":{"name":"@material/mwc-list","version":"0.21.0-canary.a6d312e5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.fd61b0476.0","@material/dom":"=10.0.0-canary.fd61b0476.0","@material/list":"=10.0.0-canary.fd61b0476.0","@material/mwc-base":"0.21.0-canary.a6d312e5.0","@material/mwc-checkbox":"0.21.0-canary.a6d312e5.0","@material/mwc-radio":"0.21.0-canary.a6d312e5.0","@material/mwc-ripple":"0.21.0-canary.a6d312e5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.fd61b0476.0","@material/feature-targeting":"=10.0.0-canary.fd61b0476.0","@material/mwc-icon":"0.21.0-canary.a6d312e5.0","@material/mwc-menu":"0.21.0-canary.a6d312e5.0","@material/ripple":"=10.0.0-canary.fd61b0476.0","@material/rtl":"=10.0.0-canary.fd61b0476.0","@material/theme":"=10.0.0-canary.fd61b0476.0","@material/typography":"=10.0.0-canary.fd61b0476.0"},"publishConfig":{"access":"public"},"gitHead":"c9a270f0f64518469d960de40537a07c4cbaf812","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a270f0f64518469d960de40537a07c4cbaf812/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.a6d312e5.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-3xVWe+VtXydkmzepakI1ux4Sl3dP8z11W/2O4yWEOJ+TFEd/FeE4d5YutDHHJjKkJ19lrfnXZjZQWe1C1ye+Lg==","shasum":"41136c716e4e6de5e50a03044ef18bc994d15f04","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.a6d312e5.0.tgz","fileCount":45,"unpackedSize":245959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCfaRCRA9TVsSAnZWagAANtcP/R2XMddHFK2B6BzetD20\nYPBQBxBH6j8JXviacfSgROs6KLezPiV4bIteSjVif/QlPdfSMsCiHUOUoUOD\nwKAch7FgKftWUcBtGCkgvWZzsPgdM4iMyk1gsJ7GKxbvvMNKHCA3/8O9DnZi\nEtGb4q01Gg5rZigoXh/Kvlviwj60AvFJ1gBraVy6bKLhia6KuoqJVTwHBTRw\nR9ecWyRMv/B0FW1xWrMcscnZK0S0mLqUEtMkgvSYvs+vIKs2ewvtLvMd80Wu\n19L5psnQJPXzaqWSaKvOB7Bco5mEdKhuSrVtqTFjJayeQ61QNyJGOE6WdTYZ\nxdvO2Mys+W9061h4yMnzNCloXaP5V+nr5ryOKuEBAikbzkNw4jVx32pEuPXh\nraqE51WS5e92f2PfpSMtdTHjvucPmzhzQ4CTYLbpeT15OLjtI04hr1At4rY3\ndWkXCAIfqPzgC7BqJWVb6xf6hiZG9dMBQXh1FdLqzUTCRLOYEUh2H4RX70gM\n+HT+p8NVyYilySA93htGDgWSgzTZ9zxXVmgI4GQidgvPqXHtJ6p1ptBbao/u\nA9y3jJHr3yKXfpnZnnZHBLtgNpjzNJ9983m3QQqVQWQ6WcdYZvBVKlxsXeyk\nUj3eziy08mHDImI6Z7z6NElJcdXD4eFQ9OYPs+MHt/4Xd/Gsv42TZLaN+F4h\nkuZc\r\n=bnlj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEGS8TukRvnxOgeTdJ5Zh4CvEjhVY4cxJDDKUD/oeoitAiEA7B9bachaRnCxMuuC/VsoP3EelwiyBeDEn1dXpcRItnc="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.a6d312e5.0_1611265681278_0.5898526441088807"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.027365eb.0":{"name":"@material/mwc-list","version":"0.21.0-canary.027365eb.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.07deaec27.0","@material/dom":"=10.0.0-canary.07deaec27.0","@material/list":"=10.0.0-canary.07deaec27.0","@material/mwc-base":"0.21.0-canary.027365eb.0","@material/mwc-checkbox":"0.21.0-canary.027365eb.0","@material/mwc-radio":"0.21.0-canary.027365eb.0","@material/mwc-ripple":"0.21.0-canary.027365eb.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.07deaec27.0","@material/feature-targeting":"=10.0.0-canary.07deaec27.0","@material/mwc-icon":"0.21.0-canary.027365eb.0","@material/mwc-menu":"0.21.0-canary.027365eb.0","@material/ripple":"=10.0.0-canary.07deaec27.0","@material/rtl":"=10.0.0-canary.07deaec27.0","@material/theme":"=10.0.0-canary.07deaec27.0","@material/typography":"=10.0.0-canary.07deaec27.0"},"publishConfig":{"access":"public"},"gitHead":"85e9fc6866aaf5bc83721e8c823275ba9232a536","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85e9fc6866aaf5bc83721e8c823275ba9232a536/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.027365eb.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-3rArDyPtr+mP24IYJm9KKIH8rYo7B9Qz4ZP7pNqieG0DZuN73e9NdqOTgsnjHBx8INATZu1HB0y59xvB3mwFAw==","shasum":"4ff778e17e57441b34d9504e3439248dff4f27fb","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.027365eb.0.tgz","fileCount":45,"unpackedSize":245959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgCz61CRA9TVsSAnZWagAAGeAP/335fUYCoxvMS1w6eGFG\nVxXBrtaSMJUkD2focmn/TnZ82TBj3e7pc3YpydGEwEGKSxHwhsUOlD4CkuXt\n01Xno+rIIVWlwr6rXxphVd2twKUgCU1HFel4197BU1oC/udf3JmSUGiYL3qs\nN5GDRAmOgVJ9hfrCHayjMKyH1OCyvX/ITabPK5XVaPMpnGgd4aUaUzqDD7bk\n7Ji05nmiknks6AK75+SQwkRLA3Cd9kT7phiZd/05GWRpbV5NrGKw1JilKZ8s\n2QasZVuyIZm1tb0qNlKcd/sUuLh25IbSPH4/+cAM4AlTsucOeVyyd/XapzIZ\npDRYnIB8h6BU3XeFqUAyQ8jmfsuOZd0WeX8QUarOt9ImQvbMbzM5UNsq3bAd\nnLNe5SkfD2pAriYKBAvpRD7N7+yB0o6iOSfNRinNrHaekVpV6GPLwoJjZDOW\nVPxI4mBSWz92EX4zgjdasYvwpBwNg/tNPgXHjXWRzC1tm6WDXDqOgqbYdKY4\n40sl55Q9swvD9UVKN/cHRdavIhQ5sKzVcIjmhPbIYcQZ4drmiky0WYTRScq/\n7HQG0cYngOe9jGF9ZQPrPjtulvch+bxwOjxVX1JEFe1/kY02YHxondSQ3qUZ\nA7X8XfbuePlSRmZbsJNR8JjN0x0HzO5fF++TqbBMl/DfuG3zJK6isLYLJh9O\noIIx\r\n=hEI0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICWZ01iOQa4SYsd7DyW56qOZXXG8D2cwnsycj9ke3KEMAiANMt0P81rRjGTyYPKEPmPmRZ+IlmJec32srTDoaxmrAA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.027365eb.0_1611349684610_0.0211745585040104"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.7e72b66d.0":{"name":"@material/mwc-list","version":"0.21.0-canary.7e72b66d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.07deaec27.0","@material/dom":"=10.0.0-canary.07deaec27.0","@material/list":"=10.0.0-canary.07deaec27.0","@material/mwc-base":"0.21.0-canary.7e72b66d.0","@material/mwc-checkbox":"0.21.0-canary.7e72b66d.0","@material/mwc-radio":"0.21.0-canary.7e72b66d.0","@material/mwc-ripple":"0.21.0-canary.7e72b66d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.07deaec27.0","@material/feature-targeting":"=10.0.0-canary.07deaec27.0","@material/mwc-icon":"0.21.0-canary.7e72b66d.0","@material/mwc-menu":"0.21.0-canary.7e72b66d.0","@material/ripple":"=10.0.0-canary.07deaec27.0","@material/rtl":"=10.0.0-canary.07deaec27.0","@material/theme":"=10.0.0-canary.07deaec27.0","@material/typography":"=10.0.0-canary.07deaec27.0"},"publishConfig":{"access":"public"},"gitHead":"000cf6108aa08030d7569d4ad30c798e7ebe9da3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/000cf6108aa08030d7569d4ad30c798e7ebe9da3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.7e72b66d.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-lbPNqShyAqAVrrJ7pC8VQyv+TLzYL7VjeHNS0oHzad37llnGmKBg4c1FyOLGsme6qfwklG7R+cSD/SFmbpd8QQ==","shasum":"2954ebcc2ce5037911687308942bf4ee3997642d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.7e72b66d.0.tgz","fileCount":45,"unpackedSize":245959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgC19HCRA9TVsSAnZWagAAZb0P/2jb9QahVGwAdr+FYyOy\nsmZc8lQ01VHc+T7Wn2G1/mSTgUMaXfI2rdWwayxDDWb5837WhVBZI5FkwzJ3\n7a70YMx8sN0J67LBmwjyW3/NuLyXCO9+mfi4wVd6ssec9tOqrjUDHDJgGCPe\ndiDI+dvAfOnRVIU3d3DAO3lmqmca3sYHLNBLWvOpR0W3pIiQLwC6kpS4zsWR\nom/FeB9IzLlqAMbBE/QKvVCSDG4uFQrbxxvgGmqta1oNgYVK997cbnjC3wCD\na0pU/m2B1Nrsr3dzAIz1E+ntH2W9/1S/60i0YyGysb5jABqxQ56E2RpoSOro\n5GUakvnG3MIWwPW+fZD1XJKdbQc8c47pByIXXODEkbmMFE4WLB7BfrRFWHjo\ntHPdwWVZPSku3dR3AvsIWaIvoqAoZHebf5YszSomVSaEjsi1vZpoLvTQLtfv\nr4HNbLBoyFCh+hyJ2XbTe6DLBzYnf0atnDBenK9Vmyeyu/DC3d5SOjguldGD\nF+9w15LbSWe693LM0CHa/mjWMm0EWFk9xZuwXrgPzanpyfe7lJs///qK6RzM\ncsfouZ0TWjiw4RWToV9eHrJHyKaROCssjM/xF8GdA7eGVot6Rv9a0eHFGBpY\nGCFPg/VxLqUdxpA58PlpJsTG3JrvtvInV3BdnPmbYDLBzbg1lqvPTkAfb2e8\nWvwK\r\n=Epjv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDdDVRAhA/y1PvOTUMocwSkpzpQGOJUSPntRlSgWJwn4AIgDxAm6ik/ihTMKemNDKd6E6PljymEE0MGtJA4VE+TXdc="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.7e72b66d.0_1611358023307_0.2407804801279645"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.a6d6a1e7.0":{"name":"@material/mwc-list","version":"0.21.0-canary.a6d6a1e7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.07deaec27.0","@material/dom":"=10.0.0-canary.07deaec27.0","@material/list":"=10.0.0-canary.07deaec27.0","@material/mwc-base":"0.21.0-canary.a6d6a1e7.0","@material/mwc-checkbox":"0.21.0-canary.a6d6a1e7.0","@material/mwc-radio":"0.21.0-canary.a6d6a1e7.0","@material/mwc-ripple":"0.21.0-canary.a6d6a1e7.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.07deaec27.0","@material/feature-targeting":"=10.0.0-canary.07deaec27.0","@material/mwc-icon":"0.21.0-canary.a6d6a1e7.0","@material/mwc-menu":"0.21.0-canary.a6d6a1e7.0","@material/ripple":"=10.0.0-canary.07deaec27.0","@material/rtl":"=10.0.0-canary.07deaec27.0","@material/theme":"=10.0.0-canary.07deaec27.0","@material/typography":"=10.0.0-canary.07deaec27.0"},"publishConfig":{"access":"public"},"gitHead":"24a3d6e567ad7ea6c29b40c2088121baec3a5fc3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/24a3d6e567ad7ea6c29b40c2088121baec3a5fc3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.a6d6a1e7.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.20.2/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-Dl3aHvtDHBOSW4obbN4EeDqvNbMxpD0jiRxHekuJOFCNpg7NRw/BHptvzfJoP4KdtwEffyIaH2KpnXWYRcdJPw==","shasum":"476db7547e127e0f8e46b3a18cbc23f922d4448a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.a6d6a1e7.0.tgz","fileCount":45,"unpackedSize":245959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgC2C8CRA9TVsSAnZWagAADnMP/RQKGxtdCVbpNkHy1Wnu\nb22Z0VJbq8XoR0NV1S+O3dBJGhTH2MTZnqyausdfuSZfIg+fdYXmtWccKtWB\nNqxFORyT+fwBLj+G3DF9HhLllL/XX1b9IbeEGCKZp/JFuYrtIGUroh9tfwak\nO2CUn5ih+1hgOiGlfMuFbSSkLzkmL1xbg8+jP3YHbpjtulDca0T3gBIathRW\nES7hsJ1WSwNIzPmb1DsqxGl9jk8hdxO40F/6EkTObpJVk6K0VzrYs7DJnmHH\nM4t7pWYd197TZAnKPvk96RU4hR/k7dLwcC834/TBYMz1uAnVqc83MT5hE2up\ndMyL7CWI9fbz3Q017KD5eGnMqjgvOSmxfHsOFe8euUR8viNy27w1ueZw3MkT\nUVKIzCJPcCgJ2oEiSj+mUHgdkxz+VhLx57Qy8DHw4bmP2pwWuB7tAw2wiNed\ndwY2EDxS7lRyRc17sH5LiKO2HtNadfRlKBJ8wgDPB/FOijjS9GYjQ+NcthKK\nHu4WCLAtr17EfdGRQnnHASks9sLLPqqVayORfdWWEPpnQoFJW6sgKUk9Hqvk\nbAoY7jJGIGF6saObTTJC+ZOBXoT753Mhjdl96a4Rbc0IfGLS/CEMxL5TMgDU\n6tiwz0WLKLTcjp/IME3OWKutfuuYLn6vu0vYQDyUNZ5nYj1WXZPTtG0bYock\nt8pq\r\n=ZRXD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCFDRwiyxvH7ro5jjmfPsLJmYggkwo3RcZ10WWB1UkHnQIhANbgtMUp+2NLS6+fbqr+6yQG2lFPnibZTKX9x7u4XSpq"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.a6d6a1e7.0_1611358396058_0.5627125468913823"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.b95fe100.0":{"name":"@material/mwc-list","version":"0.21.0-canary.b95fe100.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.07deaec27.0","@material/dom":"=10.0.0-canary.07deaec27.0","@material/list":"=10.0.0-canary.07deaec27.0","@material/mwc-base":"0.21.0-canary.b95fe100.0","@material/mwc-checkbox":"0.21.0-canary.b95fe100.0","@material/mwc-radio":"0.21.0-canary.b95fe100.0","@material/mwc-ripple":"0.21.0-canary.b95fe100.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.07deaec27.0","@material/feature-targeting":"=10.0.0-canary.07deaec27.0","@material/mwc-icon":"0.21.0-canary.b95fe100.0","@material/mwc-menu":"0.21.0-canary.b95fe100.0","@material/ripple":"=10.0.0-canary.07deaec27.0","@material/rtl":"=10.0.0-canary.07deaec27.0","@material/theme":"=10.0.0-canary.07deaec27.0","@material/typography":"=10.0.0-canary.07deaec27.0"},"publishConfig":{"access":"public"},"gitHead":"229d3b172620cbdd5deae4cb60852f0ad2d4671e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/229d3b172620cbdd5deae4cb60852f0ad2d4671e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.b95fe100.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-lVMKlZk/GcV5AsmQn2LVmaTKNmY4/CzlzWmkbP8QW90phyI6L+mkYpHnQZqwFisFBxbQvIqjUYAi2J1UNuwrHA==","shasum":"d3faff8e9e61e0ed408bb6f6139ba587c54eec8e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.b95fe100.0.tgz","fileCount":45,"unpackedSize":245959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgC2U1CRA9TVsSAnZWagAAKHoP/2AcczCsAkEg7vSoP+cC\nhr9Zx2bWoiYQmxype+NT0j0YwWbI/d34au3y9yuJt9M6VyWUeBrY/vm5ZL95\nvA7cuFFV7eQp+1BuoI4kgnpZodJFZjDOwgoLHG6fVGlNItNOPzsh6JLlULk6\nPaI1YgXqtdoZ67sf6wd5DBh0jE2HFYegXRlFvVYWGk2OQtMKkvo6y7Mdm+9d\nnf0VsRClaypxWq0GJ8DrlTYnEyiNrOM8/zFe8SauwZKdxvlkqFPkb/5nHooh\nGDTY1Ok+N4LQAji7mJEuHSEgRfgheGTW7NepgonRv6CL0sVJGEe4STUAdmyT\nbXJQRRjk4UbXpF6x9uwL/ThA/2jDmr+J6LGoR4jxGmZnkI7bHm2MW5UU1LDD\nEmB72zZzhwDhq5MYHdT3AvT9jnssXBY2zc804433CnNmr9AaH1xFLBD/kBe5\nURox2xJVdbTag23ET4m4ntvEGvdPuw+6jA5u9ce1nDYJ38joRNRZGHZQO1O5\nPxmWafrbiIB0gB38wsHLv7pzGGfAsSLPzO38R/3Hwkk43D+b9AFH50EYiVMD\nvvdE7JZCR8JIkiuu63yrLxBEgpriHCJruqxCX3P8z8YrI8+R6Q48KFm6WbX2\npGvyLgenj3cP6pKtS786TP/SfMgxlvzFlqNtmajyiWn+5K2XhIUV6E/h9bxI\nE/EE\r\n=MIhA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMoHk9I/29mf5vqjiJdXOdqn4ncN1qeyhT/tAvvSOTGgIhANFA0f5k/l/q0fatymE/+8uCk71vSQKU/bbfmlzkDhO8"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.b95fe100.0_1611359541401_0.876410460414732"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.c8797192.0":{"name":"@material/mwc-list","version":"0.21.0-canary.c8797192.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.b9adb7a0f.0","@material/dom":"=10.0.0-canary.b9adb7a0f.0","@material/list":"=10.0.0-canary.b9adb7a0f.0","@material/mwc-base":"0.21.0-canary.c8797192.0","@material/mwc-checkbox":"0.21.0-canary.c8797192.0","@material/mwc-radio":"0.21.0-canary.c8797192.0","@material/mwc-ripple":"0.21.0-canary.c8797192.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.b9adb7a0f.0","@material/feature-targeting":"=10.0.0-canary.b9adb7a0f.0","@material/mwc-icon":"0.21.0-canary.c8797192.0","@material/mwc-menu":"0.21.0-canary.c8797192.0","@material/ripple":"=10.0.0-canary.b9adb7a0f.0","@material/rtl":"=10.0.0-canary.b9adb7a0f.0","@material/theme":"=10.0.0-canary.b9adb7a0f.0","@material/typography":"=10.0.0-canary.b9adb7a0f.0"},"publishConfig":{"access":"public"},"gitHead":"42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42b37fcb3c5c8e4488b44daf72e5e374bf0e2e75/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.c8797192.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-0eTQSZDQbDAtFpT9j7be1xEYTqvKo6TpfPOMWiBGlg4KVN/2wwxeQOe9Wsc59b97C3ySLrdHkPdvAVUnF6M/8g==","shasum":"9c9094c47c596dbdd18ae9ea61a1a79152248d27","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.c8797192.0.tgz","fileCount":45,"unpackedSize":245959,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgC2jSCRA9TVsSAnZWagAAwo4P/0zNp2+q0Dd3avX+yEvw\nijqKs9lBJCDCOkoH/3xXfb+wg9uSOS0gcgFOtdExS8CbqLccPJ1M1ozPGLx/\n3wgMnkhqjaQnNAhLqRDGKL8YqX/kdRItRVsE0gWdwV+4idvs4VH4sD5B0O41\nj+XaYg0MDSp7sm5mHk0BZaiu1KXTxdZFV4nDgJuso0tw3CFzIyQflxLG5lB1\nZtV5v0MY7AEFfvMpeExkUhqQZ1Q7uwnbKiA2Ux0Trpn6+OBUvcDPtiCuU/ce\nPTLaNwm+96eax3ZmYUDrl/ITRwxPeJJ835YGrWT7/3+gLnxTOv/sJQLi9P0O\nm+hOwLQtw9JQZ9k9jeJVDx+RUGzSMuirivAV9eUUDIodCOFeX3nip8igICY7\n3hy1FraLyT0ELFPVypaq90nDvw6f4382KY/Duh3xEB8M6LbvLZhyBjcDFAHu\nY541pxQivOy/v5gpAOkdjrqkV1dDKN5ye+PrraX6afFJQ8WT3KjLOmyemBnE\n2yF/TggXl9RDt/H6MdsetlSUMRBborrs2j8gJH5gRB2amNHuyTroVeAn/o4q\n97Dobm4idwjDeoKFCPZZ6dsYgGg6gFg9bM+P/PPjAnDCVhzIkZB3SvlnGQKg\neeCdNtS1Wx7hGL9Zx3OaP5HSpsXY7xbDBPTsUjwx7Up3EbTd+0p46tnwJcTv\nMAsK\r\n=PvYg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF7DXRwnV4eFk/e1aos1Pvu4bIdGbfMTnZxqH81XtuVFAiEA2qQohyOG6O2NgcOW13OggdjMzwm5YVXuxBuLA4RmNpI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.c8797192.0_1611360465770_0.1514721129983252"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.946f5563.0":{"name":"@material/mwc-list","version":"0.21.0-canary.946f5563.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.b9adb7a0f.0","@material/dom":"=10.0.0-canary.b9adb7a0f.0","@material/list":"=10.0.0-canary.b9adb7a0f.0","@material/mwc-base":"0.21.0-canary.946f5563.0","@material/mwc-checkbox":"0.21.0-canary.946f5563.0","@material/mwc-radio":"0.21.0-canary.946f5563.0","@material/mwc-ripple":"0.21.0-canary.946f5563.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.b9adb7a0f.0","@material/feature-targeting":"=10.0.0-canary.b9adb7a0f.0","@material/mwc-icon":"0.21.0-canary.946f5563.0","@material/mwc-menu":"0.21.0-canary.946f5563.0","@material/ripple":"=10.0.0-canary.b9adb7a0f.0","@material/rtl":"=10.0.0-canary.b9adb7a0f.0","@material/theme":"=10.0.0-canary.b9adb7a0f.0","@material/typography":"=10.0.0-canary.b9adb7a0f.0"},"publishConfig":{"access":"public"},"gitHead":"56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/56b8a23ccbe326cdce0b3b9f5d1fd5c5f5f68f91/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.946f5563.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-5H2Pz59KfEMCk36oXKOfGm20XO2+MJx+VBV1fe8ZrInEJIA9xclEbpRCZE88Rj8WdMInmkiaNAeHQuFF0/T35w==","shasum":"7520a685badf5098bc6fe7239e75b00e4cfefd03","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.946f5563.0.tgz","fileCount":45,"unpackedSize":246132,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgC3FWCRA9TVsSAnZWagAAC1gP/RgV3hyPcBN4czs4vYMl\nAWNWfetrAPh/2oI6TZnGBAKjuJtWSvfDQdG288HRNBncthtqtFgJdFVYjvgs\n1KLI7LWVKp20BrgKojt8LUHmxstB3V+lZGXDiU+DQA7VeVEZTQIIx14Q0SzV\nPbjuK3Q+xQRbDaUOtBv+UIFUqgLPpYlGRiPVW8CxXQWJhUNQb7YQiGmnGNhM\n9J8T81YVN+XWQHz9vSQl9i/Qn1GCPIVDaF+NqHszuKqC/4I20u554MYxVzgg\nfSKSGxjVJ4uBI0MATAzf9SrrLSfFmt+8i2K1h6hI4of7obUW3swHWZmkm+MT\nZ72zXzn0vMzdOnrVap+19ntwdTSgkkshtL5I1EKA3EdqgvAa/SymJxUwmKWP\nMB3d+aje+vTkR/vp8Kg6SGil8onLgZH7SYCXxqQU1fxYftnvp8i99RFRdOYL\n3ItaXMWI8KQRamu4BRHAtpd5BDXjqsLeb2wHQ+4NdH+ex+7Wh1JlnfauQ+k/\n6u2nSdxQAumzUhtsjI68689KcRLm8eSwNh6NKU/iL8j/8h9WLivr4pThNGCh\nH71nbYczPZVWRseBYTbnwTZHniLrsf87qGja3NeuOG4Fv8JYc5n4HfwzQN4F\nYo2cgHnycgXKcQzNUjaee7eWIzKPw4YE2pTe+xQG0YipcjQLAuTTfSdWhWkM\nbNA5\r\n=MPLA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCxj5/sEVziiklbvPIraHba7tT2STqPIRoO0WGAC0oSegIgDdapqRxxzArc7SgJBYgGNM1nLqR2bXa+AKg/suiU2Yk="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.946f5563.0_1611362645954_0.9615343331605"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.43664f0e.0":{"name":"@material/mwc-list","version":"0.21.0-canary.43664f0e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.b9adb7a0f.0","@material/dom":"=10.0.0-canary.b9adb7a0f.0","@material/list":"=10.0.0-canary.b9adb7a0f.0","@material/mwc-base":"0.21.0-canary.43664f0e.0","@material/mwc-checkbox":"0.21.0-canary.43664f0e.0","@material/mwc-radio":"0.21.0-canary.43664f0e.0","@material/mwc-ripple":"0.21.0-canary.43664f0e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.b9adb7a0f.0","@material/feature-targeting":"=10.0.0-canary.b9adb7a0f.0","@material/mwc-icon":"0.21.0-canary.43664f0e.0","@material/mwc-menu":"0.21.0-canary.43664f0e.0","@material/ripple":"=10.0.0-canary.b9adb7a0f.0","@material/rtl":"=10.0.0-canary.b9adb7a0f.0","@material/theme":"=10.0.0-canary.b9adb7a0f.0","@material/typography":"=10.0.0-canary.b9adb7a0f.0"},"publishConfig":{"access":"public"},"gitHead":"62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62b7e6f595b2e13e2e57bd8f8f56ec11405ee0f5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.43664f0e.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-vcxvMfEHMgOhiJamyw0Rgc6tf8SV9lATKVG59gerY8Sp29G3YGzJSK+uvij0x4fDxcx241QWWQL268dH47Pl9w==","shasum":"c9e0c70cabea09a234263e2ade9b8c332e4315dc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.43664f0e.0.tgz","fileCount":45,"unpackedSize":246132,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgD0jpCRA9TVsSAnZWagAAFzwP/A8EWUaYLDtsgUnfPo/k\nIKknuo0ciANK0Axi0FHDfO6BV5se/QjHLei0PNx/EO5A3L19eY31Wk71ZeiR\nv0L6M8zPIklGY98OlJm8QZk7SMLPV4SigJzNB2NkJUip3R6jm3pZm4uWvrOX\n+4583jUm99N+jJcmDeaLsz1/TYi1e0RQCYthauUQkzubn+eAnpr3LOjoSqfM\nhA1DGIFjKAM12FsisRh1iMVvIwZdnw2ifA/pw+xrkzcZjy0Seco+Uu5fXvJB\ncbFF8bV9B98HGYU6qtmOx5q3qmlbRU0Tz9eQT+6rftgpxE7WkG1NEs3LHe19\nr0XawdheyMMKMQzqw2ZfCnLgMbN/Cm7+ZHVYNef89rLYlKXpobawMusbwoio\n9/gp3NjznaO8uyMPOqRVTqt4dh/7ukHniwkhcRjEs9j0sxrVwQhf7sM8t59w\nAmlx8+cmeJTdI1bhyRQ39eJfxgHtgVESfCQF+apy37QRFQy4Qw7KLw6mv72g\nm2FATIstfE0NKeFBRr7MNyvFal5BdIcTsejVGvrCgMRtqUTquXZUTCf0y2at\n7X+VEBvVJYWhnZKyFC7SfzpwX40SHWWzDpbKdQFt89dEhqjooINHfiuQ5ZyS\nn/3MnZ6x63lqedFtC1i65h06qZuDjkWLAY2y5lERzulFlQJD1y3j8oHYygQ/\ndyZ2\r\n=174E\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/p1goA8ufX+JkeYdbg8O7pGLkyFxzFPmye9wRW5oTsQIhAI9kbYQixHbVhJdA9m7O1oHP/v0T39Q++Gm2bKr66NqP"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.43664f0e.0_1611614440540_0.559785261550489"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.2e769e3c.0":{"name":"@material/mwc-list","version":"0.21.0-canary.2e769e3c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.b9adb7a0f.0","@material/dom":"=10.0.0-canary.b9adb7a0f.0","@material/list":"=10.0.0-canary.b9adb7a0f.0","@material/mwc-base":"0.21.0-canary.2e769e3c.0","@material/mwc-checkbox":"0.21.0-canary.2e769e3c.0","@material/mwc-radio":"0.21.0-canary.2e769e3c.0","@material/mwc-ripple":"0.21.0-canary.2e769e3c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.b9adb7a0f.0","@material/feature-targeting":"=10.0.0-canary.b9adb7a0f.0","@material/mwc-icon":"0.21.0-canary.2e769e3c.0","@material/mwc-menu":"0.21.0-canary.2e769e3c.0","@material/ripple":"=10.0.0-canary.b9adb7a0f.0","@material/rtl":"=10.0.0-canary.b9adb7a0f.0","@material/theme":"=10.0.0-canary.b9adb7a0f.0","@material/typography":"=10.0.0-canary.b9adb7a0f.0"},"publishConfig":{"access":"public"},"gitHead":"e3a3fae1109be58444840f6099c0f87c3966367d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3fae1109be58444840f6099c0f87c3966367d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.2e769e3c.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-Mq8t/tb1dooNWiC58fwYnS1DHcBvlJpYbJ8OhjzuOHkzHlJRh84mJOlmk0N6tghDqSfepmfULcliMVdJsWmI4g==","shasum":"e6ca45ee7500f5a426d49e577be58b74dfa6f383","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.2e769e3c.0.tgz","fileCount":45,"unpackedSize":246164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgD10YCRA9TVsSAnZWagAA2jgP/1/UhJzuWUTVZrdZjFra\n/+hqH2wxRcMoDjLZbWrG9ufzkgRHox4poHFGOWEE06gp0vcHfi5mzbIryGl6\nAh9OdqZO4DAAfWcBGmPV0wA8o1DYRMrzpd3bVgVPMYDE8Xo8hoHpCNB/X6pr\nDLLeTu4zI0rUGRcgrwQpKyJAFB3Y6ZoUv7hCFfVb7kg9Szgjds+dkUgGMHsg\nKyBPZ+YZXHdU/ipnGjQFIOjFormeJBLuctjd7kR+inmkP735Qdl3eL+F7WqF\nzlMMSE1JxlDE8pl6he/KJ9W40Dk0lejEqCu21Ni/GM2lyuUfGoaabY6XhK9I\nf/iYrnKeEL4K6vrnxl6ph7kO305IzetI+gMfiyjjbGlP7zMW4zqbui5VMyd5\nqUqaKc6ffww0T4Ddb6gUOJRe/sVr9UJjTRKuMy+WEYcaRmJG+KumROMn8A26\n8fXsZCqrdetsX7cB6fl4Ardr/XNAGfxUoh5N3GPNOP7EMi3JxL8dmzPtZmLl\noWebGe8v97VGnRsMMirVh82ffz27Z4ts5sI3H3TirNA41xwm0g5IqJcypHZ/\n67rMeoPEl5uj+DVKGGN/PJ/DDihkY+NnqH3/A0LbzNiZGVJShgpGhhhImdyO\nYCEEYU28rsUP0JsAMffkRSp10Mkz6xDDY60iexAYRX3ZaNWvKrhrPaGy4c85\nTLf2\r\n=ix3g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfv/OtLp9ojIYIMAzqR3VqK+/YBVjpk9k889RwTkPmhQIgdhuafqKb2dpX6QpJgbNtTr2EFGnZq7QlcAKYrNXdTIs="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.2e769e3c.0_1611619607771_0.8538205177284008"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.14e01610.0":{"name":"@material/mwc-list","version":"0.21.0-canary.14e01610.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.96878e1d0.0","@material/dom":"=10.0.0-canary.96878e1d0.0","@material/list":"=10.0.0-canary.96878e1d0.0","@material/mwc-base":"0.21.0-canary.14e01610.0","@material/mwc-checkbox":"0.21.0-canary.14e01610.0","@material/mwc-radio":"0.21.0-canary.14e01610.0","@material/mwc-ripple":"0.21.0-canary.14e01610.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.96878e1d0.0","@material/feature-targeting":"=10.0.0-canary.96878e1d0.0","@material/mwc-icon":"0.21.0-canary.14e01610.0","@material/mwc-menu":"0.21.0-canary.14e01610.0","@material/ripple":"=10.0.0-canary.96878e1d0.0","@material/rtl":"=10.0.0-canary.96878e1d0.0","@material/theme":"=10.0.0-canary.96878e1d0.0","@material/typography":"=10.0.0-canary.96878e1d0.0"},"publishConfig":{"access":"public"},"gitHead":"0794659aea627aa04b2ec37e3f0e8cd9d976ae8a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0794659aea627aa04b2ec37e3f0e8cd9d976ae8a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.14e01610.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-WOsdzaHpzXmqGzr5vGoL850FPWZwpgGUOJFB8hvwZRxwZJPuvgyx0PaeE6nsP+2X3F4Di0P3/sRia+PgnTNGsw==","shasum":"7952a3f0846099798e60ad3d501d394ec7681348","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.14e01610.0.tgz","fileCount":45,"unpackedSize":246164,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEcRhCRA9TVsSAnZWagAAFrIP/1/ApYtSH5qDuv+1Ma0s\nCGCi21L2+xeKZAFOJEouytZ/k5ejkXtP3H8Yf/6hwKSxbwK5ntjp8QjOrwvk\n5/QyZrZ8H6LZdQgP5pf+7Agwp33GxNDqn9PsNlmjFNcGUI4n4lrxR4KwlCFX\ne72DG7S5JLsWjF2fDVptp4ynSEXN1Gj4sxUyn8X/yma2HFWMAXNaNizVZVWG\nWUl/6TG2hvHGNcoK3vCZcmAWCX5Oydt+L8apmVgBT6g4VaqPGoedLHuHFsLX\nDCxJdlxYuME3L8+Tzl5G/InJ75J/AG+gjznovbvNMDNE/RnP6NERLomZG++I\nCWl4/ecg6Oq20m2Hnn+/DAalnRhtvsFM9aWSdPhDAtPmCOaLhUXqwsGSb/EZ\nrW3mHwURWBnvxyKY6E7LLuFKT2wUxDW4xnT4c0CbIJ4mnZupQ4sq1e9PdyjN\nVaDUSEbQG73k3Sjsw+EZ4iux3f3VGZElvm/bmD+79aeGt8CqHnfuyzbxWs7f\nyUu2lDP4PYbBWk1JluPuF5PRb2E1lNRGTJ2BoG9IMfZ/8qeO1QB3VTkGcJ+t\nO81g0Bc7Es+vzQ/0J4s46xsdD6/D9H0+xcicxsPR6MsJHdrDNDymr0vVvxoQ\nC18TNsjDZ7BfN0znqBsXgGcwaknOQudhgKD7waSwD58eURmxVul0JAtsvvbF\n49vl\r\n=dK+6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE9u/ns2sJA7xGIsEB5CH1JZw33ES8ef7eXkER3qATqnAiBl2TVpxuUIYCCZoJpYGBZ2lQiILUTVYgUOi2oESfaIQg=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.14e01610.0_1611777121108_0.49798084607251725"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.5de00c1b.0":{"name":"@material/mwc-list","version":"0.21.0-canary.5de00c1b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.96878e1d0.0","@material/dom":"=10.0.0-canary.96878e1d0.0","@material/list":"=10.0.0-canary.96878e1d0.0","@material/mwc-base":"0.21.0-canary.5de00c1b.0","@material/mwc-checkbox":"0.21.0-canary.5de00c1b.0","@material/mwc-radio":"0.21.0-canary.5de00c1b.0","@material/mwc-ripple":"0.21.0-canary.5de00c1b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.96878e1d0.0","@material/feature-targeting":"=10.0.0-canary.96878e1d0.0","@material/mwc-icon":"0.21.0-canary.5de00c1b.0","@material/mwc-menu":"0.21.0-canary.5de00c1b.0","@material/ripple":"=10.0.0-canary.96878e1d0.0","@material/rtl":"=10.0.0-canary.96878e1d0.0","@material/theme":"=10.0.0-canary.96878e1d0.0","@material/typography":"=10.0.0-canary.96878e1d0.0"},"publishConfig":{"access":"public"},"gitHead":"65f40b8130ec795f2a349c0699be5b3038a9c32e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/65f40b8130ec795f2a349c0699be5b3038a9c32e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.5de00c1b.0","_nodeVersion":"10.23.0","_npmVersion":"lerna/3.22.1/node@v10.23.0+x64 (linux)","dist":{"integrity":"sha512-5tONSf+pbrGgCSV2bLTBjc/T1pssk2SodZy958QuRu2bQW68GrKvwdVKPPvoCsA4/3VScnoJX4T71VJ/pC+Myw==","shasum":"08243f2d946467f29bafebe226dc0e9005ef5f7e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.5de00c1b.0.tgz","fileCount":45,"unpackedSize":246113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgEcpmCRA9TVsSAnZWagAAeEYQAJL0nM3yAubW2o+tVnCL\nFLmytIXRWkTbG9oB2BcQRehpKjSUVlOQEDMOAHsJeJq5CVwfoyDDns1g5M5m\nrQBn4QoGUBpL2rvfBkGkguq848T01/T7NA7VAfxeHrz9XkzhVzPl/zRPF2QI\nBY6tfE9PFqE/P5ch56bCrs8ginTtWvjnEXtjcPvwC5Ss66kpmOtguEVrDnq4\nVl/oX4lqi769KxqfUdsn+u95scNPpI4eH3M7D8zc2p6vD0QXDyKdm/bOnras\nwhT8stHagjLKnkmnUZh3mY7grBRGt/gMvP+BWCJXWFmTkSviyJHuQFFbXzUO\nbWniKyScksqvfv1RCwaXqwuaa6SANdJLH6p5WKHTS7CMFhxji655KpgoRK/5\nNb5VzEINP8oHYI0+OIY7CqLAr2V0Fbyoi4HKKUA694vXl2txHWtW2ZT1EXfW\n+JV65preMqkVonN2sPSfrlPGzMgsfnkJjnoUrTiafoZilMjC1n8HXRm/E3we\nKvRfcE22P5U5a1L8VkYF6v5a/txx7wtS2/5N0DWkUYUJ/8z+Ig9jGGXpO7A4\nNyKEOj4kpH37VwEgrhMOv3T4aJg88yhvRlQutsovkDcJGK76Yvkmwa7ZH4Pv\n9qJFYzWTKggFUiGyHrgS/zHw2zeBdBpIHbHJw4yBgRQllwHJw5sSjdDt6wXK\nTAmb\r\n=vl9l\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGBLzTeR47c9beX/20c6L0ZR28J4Rmbi5dncb77qZ6NAAiEA2Srf9gna4nv9gF9e+bw3ekQfsUotHPpkUqHRDq4oR+c="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.5de00c1b.0_1611778661937_0.4960036112594788"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.5a328336.0":{"name":"@material/mwc-list","version":"0.21.0-canary.5a328336.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.96878e1d0.0","@material/dom":"=10.0.0-canary.96878e1d0.0","@material/list":"=10.0.0-canary.96878e1d0.0","@material/mwc-base":"0.21.0-canary.5a328336.0","@material/mwc-checkbox":"0.21.0-canary.5a328336.0","@material/mwc-radio":"0.21.0-canary.5a328336.0","@material/mwc-ripple":"0.21.0-canary.5a328336.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.96878e1d0.0","@material/feature-targeting":"=10.0.0-canary.96878e1d0.0","@material/mwc-icon":"0.21.0-canary.5a328336.0","@material/mwc-menu":"0.21.0-canary.5a328336.0","@material/ripple":"=10.0.0-canary.96878e1d0.0","@material/rtl":"=10.0.0-canary.96878e1d0.0","@material/theme":"=10.0.0-canary.96878e1d0.0","@material/typography":"=10.0.0-canary.96878e1d0.0"},"publishConfig":{"access":"public"},"gitHead":"d5547f58c69336881e54d7463a7f7d92a04b53c7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5547f58c69336881e54d7463a7f7d92a04b53c7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.5a328336.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.22.1/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-35dYsTP4QpSkvm4Iq/zWO4/3J9dIc1dvSd2bktMD5clfSSRQzlWAKQtvB/4LTT8aFSW1TFtGiGZLqEmExaq66A==","shasum":"bf9e4afe618d43aceee01c5b43188892e5e7b5df","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.5a328336.0.tgz","fileCount":45,"unpackedSize":246295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgExalCRA9TVsSAnZWagAA5VwP/jYm067tsiu8llupiCZZ\nE4ne5OagiUw4RxuPb0OvhkkT8SKTg5/xNbvxrWu7h5PhAuQfrgntCdtLIwtd\nUEdLdYUyQG/AvuX9g1ooGiVfubMVo+egmYT/6b6QO/1qHu+Q098yek64FuMq\nNad8myjXqyjiW/54EmDCEa2TpvxFRGemQt6wwwT36vnj1nrNnzIqRKW4PR3N\nLFZGBKJ0Nwl2Jxr0dCYnZyEeXqaD4K7EB4q/8Z9066mXiL+lePGk4w5QcdmH\nniirb0N+x2TL9iT73SIUuE/N25bP8TgRZq36SAE6Fvw5Q4omfdMk8Ysna3Bs\nArHRa6Kyc4fDTpebED6DimDI7TWY2/I+4w+BpwxLWtNrm1vWNJ+jg1bbvZ+l\ntlZ9KtOp+JZgMBZBfmwZFQ4W47LJayMrPEAbKJl3B1AzYAvB2gBDztyZIShH\njVg3/pmxaukjX0DcSjex9CYpnudx/1P0Ehqi3fo08gFkhLX3qnpeslAkh0BX\nsg2pQG4i8fMiKYqhrNTDKqWl0EMRZ2yhTreUo4xL7+dQPd7yqaUN2GBuircG\n67glgoTXbo3KwzgZ6KtBbtxQeaHNwDjTzS+R2u/IAlHF/sPjc8IcMdPr1Awo\npp0c5bEMorKlmGeL+ntYZ3gxACTnl+KGacwd+qpKyYJwvGazp7TSj/TLO5lS\nLsyP\r\n=5xjM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHbhGSbxmoPC7VZtzGchr4Zzrjd+8FV0gghw7zX/8UvsAiBSx1RLAf4q/pcVHLhKHWWmt41xrXyhPXFqhmdKtFzgyw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.5a328336.0_1611863716800_0.7314587355265183"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.533b1251.0":{"name":"@material/mwc-list","version":"0.21.0-canary.533b1251.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.96878e1d0.0","@material/dom":"=10.0.0-canary.96878e1d0.0","@material/list":"=10.0.0-canary.96878e1d0.0","@material/mwc-base":"0.21.0-canary.533b1251.0","@material/mwc-checkbox":"0.21.0-canary.533b1251.0","@material/mwc-radio":"0.21.0-canary.533b1251.0","@material/mwc-ripple":"0.21.0-canary.533b1251.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.96878e1d0.0","@material/feature-targeting":"=10.0.0-canary.96878e1d0.0","@material/mwc-icon":"0.21.0-canary.533b1251.0","@material/mwc-menu":"0.21.0-canary.533b1251.0","@material/ripple":"=10.0.0-canary.96878e1d0.0","@material/rtl":"=10.0.0-canary.96878e1d0.0","@material/theme":"=10.0.0-canary.96878e1d0.0","@material/typography":"=10.0.0-canary.96878e1d0.0"},"publishConfig":{"access":"public"},"gitHead":"b88cf0e2eded50fb9a839a426059ff1f8242a490","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b88cf0e2eded50fb9a839a426059ff1f8242a490/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.533b1251.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.22.1/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-5IJROMFyqlH1faHkQOsAuK85gRfa/T9L82jf/eGK5OCgAOKQwxRROwkS7EYneNbMzZOpxzyWDTy79A9xKxYwaA==","shasum":"c4689f699bfb2c14f460a55d6e9e423d1958bc6a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.533b1251.0.tgz","fileCount":45,"unpackedSize":246295,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgFCXSCRA9TVsSAnZWagAAJyYP/Rbz+zM6pny75igane7b\nkPPu7K2+xiuctNZFRKHo2t0YKib8eEC5e9KdW9+8ep6BOsXI7YH0yTwdMtmw\nC/eE9KzD5BglH2RVYDP2UuhnBk9paCzYzvar09inMlmcKFlh+t8rjgsq9NEM\nrAfJiV5ZMQsFNdTPr9Px1D2S7wvvPie8nLH/U1Veh24cJEccIEdHA8vciwUL\niEyodhTDyUiEWt2LpvGEDmAdSf8zVtsNGNTmJA7CLNgLpG8+IklAcPyOby4A\nTsGWuHQbTmnLpvM/P1TQWSBVwaNNoCQ1OflFALQ46I+KkBw2BOo1dJXGGCky\n6RDXIBG15+lhkuQQcqmVQJ8SHNlkN51Nkg5DfdeDl/WfyNIc8PuXv3/ezZ3q\nKVCIDxKBx5Cw+D3GNNX99n+BKkjFz3Lc956bvVCFcqpdNhR2aKACdyZcacxf\nsyYbsOctvwsNU/sMzUCe34oQVEtph27fB0kDJm/IARu1T8Gpggv9NbV+D2IL\n3mNKMAiov7V6pulUCZ9tEYtyUBx4lnsFYRc1nbWwRFM/eTKxBDMnPPTch0Wq\n5vpAkrQF8sfuuUYHCPc9NOgKzAFdNaxuhdBNptN/d3p3rwRDo736J829AVb5\nf8c3BPKYOwOSc0+bf3kFLpUCVpbr9AoGvTQJy+6Heoclr/6Yf6FUP/bxXRFX\nnhPa\r\n=Oi7g\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBiDs139dNXFjSWf0oPtdftbpfnTfE2JjS8FWNihxsVeAiBNb6K+y1MY9AWnXc6HELRNuQUkFxPXKHpsu06+gY6Big=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.533b1251.0_1611933137843_0.3334994590052234"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.ab5c0a10.0":{"name":"@material/mwc-list","version":"0.21.0-canary.ab5c0a10.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.96878e1d0.0","@material/dom":"=10.0.0-canary.96878e1d0.0","@material/list":"=10.0.0-canary.96878e1d0.0","@material/mwc-base":"0.21.0-canary.ab5c0a10.0","@material/mwc-checkbox":"0.21.0-canary.ab5c0a10.0","@material/mwc-radio":"0.21.0-canary.ab5c0a10.0","@material/mwc-ripple":"0.21.0-canary.ab5c0a10.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.96878e1d0.0","@material/feature-targeting":"=10.0.0-canary.96878e1d0.0","@material/mwc-icon":"0.21.0-canary.ab5c0a10.0","@material/mwc-menu":"0.21.0-canary.ab5c0a10.0","@material/ripple":"=10.0.0-canary.96878e1d0.0","@material/rtl":"=10.0.0-canary.96878e1d0.0","@material/theme":"=10.0.0-canary.96878e1d0.0","@material/typography":"=10.0.0-canary.96878e1d0.0"},"publishConfig":{"access":"public"},"gitHead":"2809af58a44d479ea0c8000c34c546f525921004","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2809af58a44d479ea0c8000c34c546f525921004/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.ab5c0a10.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.22.1/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-rtq4Ok6QKEyqn+oo1Jjy8PtXTwp+bkdqaHQu3+KED7TIrmwBvHFePc1VYgFG95ISlrwKblqtkUCpIcejtmkpag==","shasum":"9bad5d9c2d4bc6004a9e8d73f4f0b794683e7769","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.ab5c0a10.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGbN3CRA9TVsSAnZWagAABYMP/0gW+9ipRc4ompXXjIeJ\nrqY8biqUU31rU7Owlbg/o9qyFFav5nv9ExpJRag5J08p8Lv+aIBmqcjSQavy\nXEqlJ5w4Ndh/zbdf4J5KnstY13Je+AdLWNO2O/VKhfaVdfZH+DTqasYpDtiW\nd1PscSlxb97LtAeIjNHEnninJOOjQwl3kU6IV+cNT69p3/mqdxAftCW/mnXj\nMNWP8kNhpjrIQde4ImfhNinBCfjR8Tfi8oF3ino6tPXFYhTO/0ZS5eYmAI3p\nZYssD4yYbWoD6uUIcsxX7BAwK4iwDUSgB+q2JairRnm5rVGo+23fz+Wqh6sj\nO9fYt7Sej/v2oFH9DjrB0IJ0JJczHDEc99/lMqC4YxPtTsV7pEy3sXCFsYwj\nZ/NdoBZyv3vbyc4MztCYpEZdPf3uh3/aMQVn0I/PON2Wv0w2PEYAcCHoVRo/\nSbAMS/X5u/tJddxxXM2Bi0rwEJjmYgAp+pLqmO53UJCnL2FGrzlVFNDrQVmu\n83LE1ssXG2vJpjxNOkqIUdzFZKnbi7FAsyJknAi24sI3yF7rYhLRlJx9pAEW\n8KOm7jpsaHw8H/zCjNGck8WnQqJCZbCc1fDrlhl+V5vFR6nkl9bPe78wUxCm\nrIXlYKR2wUsx0x9FxOx9gkinnuXRVTNP1Z32ywSzUhqyCkKSsIUAbix8KLoE\nD7w+\r\n=VuRe\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICeEx8sKnkp2utIk30b/ZNIqNLagut15kHFgQtJtNyoAAiEAk6+cpxEcEkgW9fh2q8zX/zoFKgxsmR/xrzgOdMoJjqk="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.ab5c0a10.0_1612297079404_0.24889710494822137"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.b7a40b27.0":{"name":"@material/mwc-list","version":"0.21.0-canary.b7a40b27.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.96878e1d0.0","@material/dom":"=10.0.0-canary.96878e1d0.0","@material/list":"=10.0.0-canary.96878e1d0.0","@material/mwc-base":"0.21.0-canary.b7a40b27.0","@material/mwc-checkbox":"0.21.0-canary.b7a40b27.0","@material/mwc-radio":"0.21.0-canary.b7a40b27.0","@material/mwc-ripple":"0.21.0-canary.b7a40b27.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.96878e1d0.0","@material/feature-targeting":"=10.0.0-canary.96878e1d0.0","@material/mwc-icon":"0.21.0-canary.b7a40b27.0","@material/mwc-menu":"0.21.0-canary.b7a40b27.0","@material/ripple":"=10.0.0-canary.96878e1d0.0","@material/rtl":"=10.0.0-canary.96878e1d0.0","@material/theme":"=10.0.0-canary.96878e1d0.0","@material/typography":"=10.0.0-canary.96878e1d0.0"},"publishConfig":{"access":"public"},"gitHead":"c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1cdf08e57947b9dd8b35ef8599a58c0ab3c09e7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.b7a40b27.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.22.1/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-ym/9cl0zp0pLTOqUGV9UNl6eDU9thsIVvZnMVKiMcSBNlkCPbjDPldUttXvxj5fTf171E2HVl/A0EOwzrvUEnQ==","shasum":"13823a84710e4081b2af95ea411d1e8f3a9aa53e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.b7a40b27.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGrt6CRA9TVsSAnZWagAAWMsP/ihuAYlBoDjmZb+YKRIF\n26AsjRtT4MNloIYs3mOC+9UZ/s+7aD59d7OUx8Vz7ypr4kTurUgd+0XfBvel\nRKNLYrE0Gsac99O67Bl+BzXciQ4ESE8rVsYfbqCs4aUIMUm3yw+cmnP7bKxF\ndNFDJxRTGAw8AWLDRklWCyivAHC1HvwDkGYPErWAnde1XsVTqIC2oe67ck6V\nP+C9XQ2PwIHMQ0IO2HpC3Q47Nls/xhLYeknwtDEQq9Mppn8eFiTAcrRl4S3/\n8N6g+07PQGIR5/nLmUFHurvl13k5tF12beE+tUSF6xBcmPLKIfiHlfoca16M\ni6Q/kQdXhQYQ5no1T3sl54Nq9NFRxa76eICglTjZHaByqJqnc9XRP7/+8GO8\nFMZ/XHDZHrIoi6bdl9YMHd1F1JFp5Ch7nUueliEZCTCMxE3mgn20ttG0oHxe\nm9O1QlUr8LTsaXr96OHZeLy7ZbGcYS8eg1xGufWb5Tmz0nF4m54wsTPe6EG5\n4t8FCkl2BWly2P3Mjsl1JzcL/fWSmAEwgMnUaaGPGZZ9ourUkuAP2oZgr8mM\nn+v/JJi4wqa+RbOdKWmUckIQAlsa6CmJGiNfSqjZPqYPjMRz4uSUPqgt8gY/\n6L7mdm2dVgmRJjWdPV+XzGkIrMauNyWce+qk1J/lA36oyX10mWeYboTR7fJ8\nnmaf\r\n=hDoJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBrfQ1dGNNZruOfHmg72vT7NScK5bFz473fEZnmDJzFgAiBGdjSHm8Vn9APLIdxiluxgzx2ZR4I09k+VlQyTiDyTLw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.b7a40b27.0_1612364665527_0.26939808688708866"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.0fdee204.0":{"name":"@material/mwc-list","version":"0.21.0-canary.0fdee204.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=10.0.0-canary.8e66dbfee.0","@material/dom":"=10.0.0-canary.8e66dbfee.0","@material/list":"=10.0.0-canary.8e66dbfee.0","@material/mwc-base":"0.21.0-canary.0fdee204.0","@material/mwc-checkbox":"0.21.0-canary.0fdee204.0","@material/mwc-radio":"0.21.0-canary.0fdee204.0","@material/mwc-ripple":"0.21.0-canary.0fdee204.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=10.0.0-canary.8e66dbfee.0","@material/feature-targeting":"=10.0.0-canary.8e66dbfee.0","@material/mwc-icon":"0.21.0-canary.0fdee204.0","@material/mwc-menu":"0.21.0-canary.0fdee204.0","@material/ripple":"=10.0.0-canary.8e66dbfee.0","@material/rtl":"=10.0.0-canary.8e66dbfee.0","@material/theme":"=10.0.0-canary.8e66dbfee.0","@material/typography":"=10.0.0-canary.8e66dbfee.0"},"publishConfig":{"access":"public"},"gitHead":"f072f9738076b381b1be472e9a6d239553e4d7c5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f072f9738076b381b1be472e9a6d239553e4d7c5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.0fdee204.0","_nodeVersion":"10.23.1","_npmVersion":"lerna/3.22.1/node@v10.23.1+x64 (linux)","dist":{"integrity":"sha512-gz3WPi47COny1MwUmNL5TTn4TfasWjmPZ6UmxbP05KOZAQkaewwPjlTzoxtZFE2yNXjGObgj2pGIlRMlhB/4yA==","shasum":"48a0e8202561691914604e5b44927c271ab133e8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.0fdee204.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgGuy8CRA9TVsSAnZWagAAspEQAJdcAJnvC5Qo7qzmbhMJ\nxwebOhB2z6ap9vaWoNevxffclkTl3Yeoow62K0EUbjJQsWpad+eXRk2ezABB\n/QLksoqz8hp/wvOGb6WH682EGaotnM/JEwPTOFz2odrIHbw6MrEjMk9Iw6+u\nRDNKVOrsBYgECbl3wle55jW//sqli+/HinbQRdX1lN8sYixgB69keKgyT9m0\nqQR2yEJaupg1/Woobo7g3FoIvJ7Sb6Ncuy5WVuY7kJ7mxb8VEjpwcdm8tvTW\n4V8Xbk70xlDLriAfqMPdXCt+TFCzkYgHjW83OuxdaRcbbGNDyal+PO8Ggp6s\njt85wvUT60CetI6y7B2M0228t1vZTxCMH4EIcezL20FM1SAsV8bbaBcAMvwr\n9xM4u97pEd1f3xsmNTumGr4Ol3lZoZ5d+e6JQ0Vqy3CRcvPJ7HFB57Nn4lsz\nipu8Nx5L0HAJG1uyaUTN2dFd5Sq7KiEh/CsJ8IPEJzDeKbZsVmMSH0sMJ6wU\nVsXkvXjmxdhqDMcOYe+LN+TxIrAWExBkk+/Eg7r9lp8wgxledtgMaFG+fBAD\n+VnOcJLOXWqF3t9sl8EnMmr5ZODRX7oI/BCMNujy4JQHmyKky4hdH2t1RnyN\nutFaJJ9WfhRSX3uRk/9pspObmeLkiXZNITRWz3lTaoq00By1i40L80GFWcz+\nTnse\r\n=OVGD\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEA0qY8eQrEqcjJwAmDr1D23SHXfnzlWJfomPnzc00LUAiAFYyb+FjZf+6v5IIfZAHd+HFlUdC2TXp5fjhpXSHCbPA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.0fdee204.0_1612377275869_0.9050717406695938"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.5160e548.0":{"name":"@material/mwc-list","version":"0.21.0-canary.5160e548.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.b5227247d.0","@material/dom":"=11.0.0-canary.b5227247d.0","@material/list":"=11.0.0-canary.b5227247d.0","@material/mwc-base":"0.21.0-canary.5160e548.0","@material/mwc-checkbox":"0.21.0-canary.5160e548.0","@material/mwc-radio":"0.21.0-canary.5160e548.0","@material/mwc-ripple":"0.21.0-canary.5160e548.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.b5227247d.0","@material/feature-targeting":"=11.0.0-canary.b5227247d.0","@material/mwc-icon":"0.21.0-canary.5160e548.0","@material/mwc-menu":"0.21.0-canary.5160e548.0","@material/ripple":"=11.0.0-canary.b5227247d.0","@material/rtl":"=11.0.0-canary.b5227247d.0","@material/theme":"=11.0.0-canary.b5227247d.0","@material/typography":"=11.0.0-canary.b5227247d.0"},"publishConfig":{"access":"public"},"gitHead":"37494b60e468d33d172953edbd3ca17d4aa342e5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37494b60e468d33d172953edbd3ca17d4aa342e5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.5160e548.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-7INFGUf1A2UTGAUcftYJvzrbdAeedxU2EqWB8/dcVBO4mj1JIWgwARqC3l/5BmKnqyJz1SzSTJ8beTbgUR2mFg==","shasum":"e2120dfc8a15531510de3404f9ec01b0ef2eb20f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.5160e548.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgHdoTCRA9TVsSAnZWagAAyswP/0mgcdO7s6WuPLNPLBJk\n+uTfc3FaBAQwq5OW5obfnEDyQS84jZ1qLY3+rV5NhzFlZUtFmHfqxBNNQHWt\nHNSt+pA484YJjs7LrkngtOcG8aFgjv6ir/Ul2qBnLWrYQOpOgaAcA5mwenwB\n3PsCa5jV3di4Ia3U1jF0STcUIkIv7uASXHURZjayV/pFpWs0XnzC4bB6iMl4\niTbCP/MP/7y0aGzlgQKLwu9xqqIpukyRpdji3WY3eiDi4Nx29aX9Ai6kzoxL\nbcWHq7pQStsDoZoT9dyXUHHn6No4xk3pnUoreZIvgj9wlgfSjMJ7iNHIuWTy\ncJ995JCkOpNU6VEOjkkUz3AT9CnPFCfdgZck1IQJoVr/z6mtdIrYqvpQBxdW\ntHPIc3Y8gLWbHH8z8Yl1haDtlVzt5OUNgEEAzXCWt61tnZksLXAHyYXcv2Xj\nAli8q2XzJXZ6nDpGm253GhK+r7+TukjZwKBAN+YJXy2Mn6WwF4qARjvoFE7W\nU/mNKJIlbS+UHQEFTZb0IZ6EW/4QrFX6Y7SMIvsccL+s/TIVL4csDirxAyLk\nlAQz1seSc5Fmu8lIOp4U6H6rakzjxbhTgs6HLKyyrq7yH63PNDcTciS2N70u\n6ryxmEYV4sTHmdz072kPkfX2eGzQLsnS/zBM21rRv9i750t9zXnC5nOP7Td3\nTvCA\r\n=cjnH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5JHVxfyNMGUpt6Ph9k2x2Fzejy/TtEPbhFfGAddvmKgIgOd+HMk7fdvC89M0z1Mbh7e2xXYi3q7Zckfotj4+EGdw="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.5160e548.0_1612569107344_0.7840623796231174"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.4fa2daec.0":{"name":"@material/mwc-list","version":"0.21.0-canary.4fa2daec.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.aac8f5d9a.0","@material/dom":"=11.0.0-canary.aac8f5d9a.0","@material/list":"=11.0.0-canary.aac8f5d9a.0","@material/mwc-base":"0.21.0-canary.4fa2daec.0","@material/mwc-checkbox":"0.21.0-canary.4fa2daec.0","@material/mwc-radio":"0.21.0-canary.4fa2daec.0","@material/mwc-ripple":"0.21.0-canary.4fa2daec.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.aac8f5d9a.0","@material/feature-targeting":"=11.0.0-canary.aac8f5d9a.0","@material/mwc-icon":"0.21.0-canary.4fa2daec.0","@material/mwc-menu":"0.21.0-canary.4fa2daec.0","@material/ripple":"=11.0.0-canary.aac8f5d9a.0","@material/rtl":"=11.0.0-canary.aac8f5d9a.0","@material/theme":"=11.0.0-canary.aac8f5d9a.0","@material/typography":"=11.0.0-canary.aac8f5d9a.0"},"publishConfig":{"access":"public"},"gitHead":"49d5ec72e92627f861ab94dde045181b5eea9f00","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49d5ec72e92627f861ab94dde045181b5eea9f00/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.4fa2daec.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-6YhNe3ZI3jRl8sYkbsw0Ur6QUmRhAHTGB8i3/aDQi+KDBr9fc4IpaGd7oTYfrcp4+/nwev6c2oDnFDk/3NcVCA==","shasum":"2241aaaa83f3397b463c150c48bb6bc4e7f70d23","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.4fa2daec.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIdUGCRA9TVsSAnZWagAAbboP/3UzQYmmxNyX0saOiNh+\nEiI1YPHJRrmN6b/GMaya8H1M5wc2pwqjjSyFPuV6w4tbKV9nJDlFTwuO3VGT\nXCn0Teis7I03WTkWGuy1scCPF68+qop882mj1RbXtQHGKPWHAtY4j0NOl/GG\n9AHERs1+XFLnEHa0jP6m/Ffna7vx/7bxuCxbTEQsPgzrov0LVYiUtkUtury8\nKG0A6ziGtA6EzPSXGEc7vibjwxsXVZKg+Yp1olIAzjI+DxTzjiq+b3TV57J7\n28uHqzp9sTVh13LrLnvvkVsn/zQ0cB/QC5M49vvpZAjyaJaAg8NU8FL2S9eW\nFjgQ1hpCa3Uj/XUMLha4mj6U222UXDjOSU9qePJpG1hsMAD3hu35V/ZbYQJT\n+FlIu8YsEleS99h6mPTrUkuvn/tr7YNsnLEdTEAAUJcn+VGHPsyj7Fwbj9HR\nrXUiBjWPc0NwFXIAlDSGmqIYMt2NmIOQqAbKtDysTxkWHnzz5P47KEto5+5S\nOIKuF4XTGn/hJhmJ2Vitwd+DrzpylehPwVb4fOSCGTMIzl/7iijcUhveVZq4\nT7M+0xQw/eLlbsHsTpRmiAZONF+713jPPolOMttWTdVLJxVELryE/hCLGS/5\nZ2LEPJkiuqgFG4A1Xk7bEPMvlf2XJjcvamC24I0TtUxsaTkT7JmzyVhUrAIb\nA8tB\r\n=EYXb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIESYxOgL1EX4OEEAYl8MDFh+SR7x8aRjI3i/ADGSTor1AiBQzCeU8uUUKrc+q6p8ciyzXzYvb2kIIz84lPk00phZGw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.4fa2daec.0_1612829958171_0.5272703623557542"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.67f285fb.0":{"name":"@material/mwc-list","version":"0.21.0-canary.67f285fb.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.750e18fc7.0","@material/dom":"=11.0.0-canary.750e18fc7.0","@material/list":"=11.0.0-canary.750e18fc7.0","@material/mwc-base":"0.21.0-canary.67f285fb.0","@material/mwc-checkbox":"0.21.0-canary.67f285fb.0","@material/mwc-radio":"0.21.0-canary.67f285fb.0","@material/mwc-ripple":"0.21.0-canary.67f285fb.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.750e18fc7.0","@material/feature-targeting":"=11.0.0-canary.750e18fc7.0","@material/mwc-icon":"0.21.0-canary.67f285fb.0","@material/mwc-menu":"0.21.0-canary.67f285fb.0","@material/ripple":"=11.0.0-canary.750e18fc7.0","@material/rtl":"=11.0.0-canary.750e18fc7.0","@material/theme":"=11.0.0-canary.750e18fc7.0","@material/typography":"=11.0.0-canary.750e18fc7.0"},"publishConfig":{"access":"public"},"gitHead":"04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/04f614de1b88fbd5e16a537f0b7e3f2f9b015a9c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.67f285fb.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-SvR8XuliGZHPiCpuoWdOnfGUHMs6M08FCaoHuJYg3Cj22AySfD7fdKgq8SnJLBp+GuV2Oecja64vqyJpIDURBg==","shasum":"eec0873aa44dd636edc6f556217365bb618b844a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.67f285fb.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgIdyeCRA9TVsSAnZWagAA8QgP/04yASHT+356+8ZkVnrE\nCHUYZ6q1o0hqq48/88KcFeIFQoRrdiJfa0rNVEatf2loPp0cN+xa+DDc8DEC\nV9IXWIBGlwNKPqC+xzZAmco6JzZ4dVWC2YSIPB/5ikRUN3pM7Yqm7sz67YLj\nypfglaaAhTOmYwC9zXsFOrBJtbb0skM60cx/87ZXbbwkS3TkzUrAbDn+3Srm\n5SIoQMEWXHfyy8flwP82OSJZSTvrSTbWxJ23dYnrNW75wxJZE2sjBIa6MXKJ\nFpPvUL2Ndh16CEftSV3sREt3DwV95kDgRPraqjLUcb1aFbbCnpj1E5W0lzsV\n0NtUsulXOiZdxMISvZMB+6nbXTfGXTRWsMjbkJQb9E/rNGHPkRsHWq+z3/lB\ntFhBj+vwFkkJVY0kjDQFnxjNp8tiu3nwNl+i6r8hjhErIK3sWhLa8CLo3t40\nXE+8E77k5NzjRpYZO4gYYTIGNXh67PRGCTYS/bM+/QeArHupRjCakHztGeLo\neafwIoooFYeNeAP3M2UNA1uC5Uifow8bVW2l+8DprRbejUhVnjZ4Op+rwKoy\nN8jkxeLSqRlJ6jGi8GkletBXdtcxACrCgXXD5ODgiRpsIskCwAbM6GdT+nHm\n00BiBKt8aU6PXntofbeA+keUqtw2xK+gFOoCwWGjKq75D3knGasZC/DHn3dn\nRr1l\r\n=N+4k\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMr0kD5JP39upxS/ximveuX/16UYyKjiGNkoflNUNF0QIhAOhcyVrdyaeCzbSNCTyfZYdejJuGhCK8nXrwwukge1OK"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.67f285fb.0_1612831902413_0.8541009118216882"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.58cd5a70.0":{"name":"@material/mwc-list","version":"0.21.0-canary.58cd5a70.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.b62b1266d.0","@material/dom":"=11.0.0-canary.b62b1266d.0","@material/list":"=11.0.0-canary.b62b1266d.0","@material/mwc-base":"0.21.0-canary.58cd5a70.0","@material/mwc-checkbox":"0.21.0-canary.58cd5a70.0","@material/mwc-radio":"0.21.0-canary.58cd5a70.0","@material/mwc-ripple":"0.21.0-canary.58cd5a70.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.b62b1266d.0","@material/feature-targeting":"=11.0.0-canary.b62b1266d.0","@material/mwc-icon":"0.21.0-canary.58cd5a70.0","@material/mwc-menu":"0.21.0-canary.58cd5a70.0","@material/ripple":"=11.0.0-canary.b62b1266d.0","@material/rtl":"=11.0.0-canary.b62b1266d.0","@material/theme":"=11.0.0-canary.b62b1266d.0","@material/typography":"=11.0.0-canary.b62b1266d.0"},"publishConfig":{"access":"public"},"gitHead":"bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bd3f430e2f5a541d9ff928f6eef5e0f06946dd6d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.58cd5a70.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-JhbpT5jxdqkdZ0c7j/W5gAAJ9L2f2H3ZuSuXroVMBsKvKTQn4Kq+WS3gA3gXx8FFx+FtZ1QCBlX61MsZCTV2sQ==","shasum":"55d9475355d5cac240936f97566109e97b354ede","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.58cd5a70.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJZd1CRA9TVsSAnZWagAAr78QAIhPE7PuPm5P9PsnbvVy\npEcL5j+ZidHMXXEcNXw/x7jxRC5Jw2ADbWCPj+Bgf/JdKc1/8nlBXy6X9zkb\nktifw5WU2AI7+F+J8YefKGnmvcRNNMTm8xG+imVGm0lCfljEo9qHwNQjc7Gi\nlm1gmBq5V21KA2fBYgE049qTK1PfgYRqxbHGz9A+1vvPFXPz/FAnvm8q6DLw\n+NWK/i7RS/mh2+bJ/qSYKjFrTLwrQvwLFcMEjHi2AMFvCYXptTtWrprPpSgp\nihMQryEVnrmCrfs0fC7sVY7iM6BEnlCHAFFVM2QipKu9IT9Q3liAk8eQj7YH\nGD+C9D6LSz58P2wGUQ3B9PrJt4EVHFnjfqj7I9/dkNAgOcGzwZJWVJqqwO/t\nmdc6Gj6kOARuC3J2WUaWZXdtGgXkcDocimkoTOSUPOhDWw2/ip81S0df8gB3\nEVIwJVF5i7APorXobOnG59alSW9+Z23OSc+ENWYug50H0BV4l9vMotiZeZWw\nWst9KcyAxQ4UURVcip7QZibs/tA2DLZx2gHuIWKoideK2U5Qx56XmADJxEGg\nYSW1uBCNLi9eGk6D0waAAy8pwVvkDK3h7S98cAQNiGAn7XoE1vA7Bp5TQQNq\nqZQYrCDSy36KqkdgAkQ+XN6Xv6r0XpLstqZtw2g2nkaQ1KLsRVoILkTKgNvc\nmiLF\r\n=vpgE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDDH32OmZ/R0O1RAxjcy7HMB4nokPeFjwHDMhBIxTU3lAiEA/QfEm2pAi9rlZbtYwx+FiWJC3M0Z9Fbzox9efxVmOmk="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.58cd5a70.0_1613076341125_0.46333189419795473"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.8107ca43.0":{"name":"@material/mwc-list","version":"0.21.0-canary.8107ca43.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.a6b3101fb.0","@material/dom":"=11.0.0-canary.a6b3101fb.0","@material/list":"=11.0.0-canary.a6b3101fb.0","@material/mwc-base":"0.21.0-canary.8107ca43.0","@material/mwc-checkbox":"0.21.0-canary.8107ca43.0","@material/mwc-radio":"0.21.0-canary.8107ca43.0","@material/mwc-ripple":"0.21.0-canary.8107ca43.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.a6b3101fb.0","@material/feature-targeting":"=11.0.0-canary.a6b3101fb.0","@material/mwc-icon":"0.21.0-canary.8107ca43.0","@material/mwc-menu":"0.21.0-canary.8107ca43.0","@material/ripple":"=11.0.0-canary.a6b3101fb.0","@material/rtl":"=11.0.0-canary.a6b3101fb.0","@material/theme":"=11.0.0-canary.a6b3101fb.0","@material/typography":"=11.0.0-canary.a6b3101fb.0"},"publishConfig":{"access":"public"},"gitHead":"579eae14a8b8a347a0e4b31bb6650c994d1df472","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/579eae14a8b8a347a0e4b31bb6650c994d1df472/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.8107ca43.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-AyfHztM9iapLfgzM1RqxoyCW8dnAEolukfsS6LJcDa2wbsftc4pKZz8wFsHTZW7sNoTmIUd0XvJa4Lqd+K6xBQ==","shasum":"968ffe62fbb3458022e3cff40570d4fd09b9eb70","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.8107ca43.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJb3dCRA9TVsSAnZWagAAvNUP/0VyXiMn4tW5J7O+D5OI\nAUQATerc65cNZsNtVINLzznace5bKvM+yGCQwRXWd9dlxmTkrYa+HiCqwtLR\nW4DuCPKrPeim69ssAU0inhZw4VUq4k1ZNN+J/4QP8toXqBPuP2L0PpuYrPF6\nGhYuYegJPrjrB9InRySoiWuGQjYTXE47aZFgtKZP/rzLrWrfM6rTe5xGHhq9\ntog+xB4knDoXtSMun5SwVPn0Cd6pXX19vv4Ur0/xc/9MpLImmcUS6rZ/xmuK\nlxbm8w1XsvrLSv92XzqzGJ/LZi4HSdraLeFRoddOxlsqKXheUMGhLXHpYzVw\ngFClYw8y8kyL4kvyOOyGohviOO0EEDoC2RRMDBhdE3KGg9OTv8Usojl3uJGN\nXTiQTYrvI1PSWPD15Ym5WEtxDHK5wNKL8HDD4cU5HZf7TPfAkwxN4YfyvegT\nPi452y7tP9kA5T2FcIjqvwpWJDxR1VH4shz+NYehHND8ve4De1PFCSqeJE4t\nwXsrAUF3aVZuNXdxKk3zyWeu2XvGa5nt/+v05R2h0hQ5G4WlbkivreVXsrBh\nxJrFbfgynMg8+zoh+jFBNLrXcTTmbVX1eXaht1/+oBKbNAzqP1WGCANf0Sh/\ngpbELzF86WJh578PtK7Meniz78kjMLmgLlaWvFt5zqilyEjs+yro0IG1tYAq\nyqBL\r\n=Ef8V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLekanur9MU7Wp7hH0R0SnbUtYeGOL4m9bvKGhJ+BpXgIhAI059PsMUmpMK4872pAtm7F23UI7BoKH29lJcCItAttG"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.8107ca43.0_1613086173078_0.7711139057358669"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.d35d64ef.0":{"name":"@material/mwc-list","version":"0.21.0-canary.d35d64ef.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.a6b3101fb.0","@material/dom":"=11.0.0-canary.a6b3101fb.0","@material/list":"=11.0.0-canary.a6b3101fb.0","@material/mwc-base":"0.21.0-canary.d35d64ef.0","@material/mwc-checkbox":"0.21.0-canary.d35d64ef.0","@material/mwc-radio":"0.21.0-canary.d35d64ef.0","@material/mwc-ripple":"0.21.0-canary.d35d64ef.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.a6b3101fb.0","@material/feature-targeting":"=11.0.0-canary.a6b3101fb.0","@material/mwc-icon":"0.21.0-canary.d35d64ef.0","@material/mwc-menu":"0.21.0-canary.d35d64ef.0","@material/ripple":"=11.0.0-canary.a6b3101fb.0","@material/rtl":"=11.0.0-canary.a6b3101fb.0","@material/theme":"=11.0.0-canary.a6b3101fb.0","@material/typography":"=11.0.0-canary.a6b3101fb.0"},"publishConfig":{"access":"public"},"gitHead":"2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fabd01c45fe7a18430cbb0070ae8b3f5d2a9dca/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.d35d64ef.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-ykbygA+wHLSFIit3aT6mkILipkzaOfrw0t+0TPeGw1miJNiLiJrLcJbouDkCu1MKOM3MQVqsZ7SeTuW8wghTzQ==","shasum":"26f3b701834d5864308c3b7c7344d9c9e41aa52f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.d35d64ef.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJcEtCRA9TVsSAnZWagAAh2wP/3mu4NfPl2eTH3gvKyYW\n+yFoh521n8oWZIAXhjoo5BH/8EOhqZmFaUYhUae68x78FTSMqHLoldgo+BxU\nXNFxXX8D4M++/CJA9kJIk/wxIwuUmclcqH0tUxqgc1FMzv2R+syyNtJmXsD3\ndaTae9FmQuvKKZOtF1cIxQyp7RfTeMUFKdrUJ/iIQ0DHYs7m6u3L4FP6wX9Z\noEN48UVgTWcj2e4T1JytYV4pFnUg27I65b1BQa2MT8MLMwuFqCxd3xqqfBLB\n+NEPkw1IK0tD6FIjiywjoItXL/XKyi3aswLKkKOi9aj+ocGvY1NG+Sr2Nqum\n9JwlZcBWtdKfoTA51Y73z00nhpj0/mwjgiS5svNUDs+lWn9wmo9J/qwAG+/1\n021B9iku/JW78sXAXZCmQyuUo1AotYIqkG20SFPsY7gvZBKKCgaNC9hXvSag\n70NlnhpC+7YkobaP0VcmjChjj0nupWRoEvUbx1Js2qA/PYEutqCxlyfQvvDY\n0Wo9Gk3LIQFpQNvPiWL2zJ+qbnjx/xTQ3UTh2WYhNgZk9DhAV1r1GGYByxDu\nSxPTjyFcE97L2tT5HasNhs4em/PuKdOThydSstwqkjlOuUIK6dL7HnCeDDs6\n8lf6d93N266EUiyWl+6wwBBtnq7gDuz8cUK8N7IHe5vtzb0aFyD0g306WFXh\nrVOI\r\n=47RU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHWJZdAo+cGeARq32YDJR3A+j6z+0i493RnZbrp5SNhQIgbCyZCBFcSphLPHiQF5KWXvRcWVZDiB94RGws5SRLWxQ="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.d35d64ef.0_1613087020566_0.9058112476834626"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.78bcf058.0":{"name":"@material/mwc-list","version":"0.21.0-canary.78bcf058.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.a6b3101fb.0","@material/dom":"=11.0.0-canary.a6b3101fb.0","@material/list":"=11.0.0-canary.a6b3101fb.0","@material/mwc-base":"0.21.0-canary.78bcf058.0","@material/mwc-checkbox":"0.21.0-canary.78bcf058.0","@material/mwc-radio":"0.21.0-canary.78bcf058.0","@material/mwc-ripple":"0.21.0-canary.78bcf058.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.a6b3101fb.0","@material/feature-targeting":"=11.0.0-canary.a6b3101fb.0","@material/mwc-icon":"0.21.0-canary.78bcf058.0","@material/mwc-menu":"0.21.0-canary.78bcf058.0","@material/ripple":"=11.0.0-canary.a6b3101fb.0","@material/rtl":"=11.0.0-canary.a6b3101fb.0","@material/theme":"=11.0.0-canary.a6b3101fb.0","@material/typography":"=11.0.0-canary.a6b3101fb.0"},"publishConfig":{"access":"public"},"gitHead":"98a4001d56b1e200103e0862b83b661c87fac551","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/98a4001d56b1e200103e0862b83b661c87fac551/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.78bcf058.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-Ar42v5fd3Doq8eYPyDzeQCPCLn1h25ZPw5gvFdFiVAHA7KplrTlb7Izb8AbiuCxROy9aT7KovLghs1G6AUHbNg==","shasum":"aa0c750f29c2fb97f47dc01cb77d24929d87ab60","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.78bcf058.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJdB3CRA9TVsSAnZWagAA7dAP/jzjhCSjWOhZUwt3ps+k\n6Y5A+211f9bIgRm4nqqJ0U6xjhryTojv6Pt8t4teGb28Lzqp8tEHMN+RklsC\nRxbRIA1Zrrlz/vGEzmFcg60ugpYrktY20PBIKsYHx7FErHYBfX5Nb9vS+0p9\nFo2HaWGwRo88XmsC0OnFcyp2FB8TAkTVdCXaKLoxTNfVw3OoHQ0w+g7R7FSE\ncp9jlR7QVhVNRxOLw6WQ+K7eyIs3j4HKj5xAHMyFfniPHTE94zacO+VMhJw6\nSR+YzpK9dWrpSvp2lGCHYF7Qt3x+/TbnTrplvVWT8tJPBKgzJK1LFyPBI7hk\nz1QAqgB1lsyDy7MIM96pwZYQBxvy/0qmiTa+sgocQhvoE53hDarCQ6S/OZvp\nLZUHinj6UlY2Hk86VNsVqiZ90QipiF/spFmmVHJox5vcqCTfK1RN29L8r9tj\nqI3rhl/1nSmy2uC9l71tcO5IX8l+2RPVr3LsnYSqR3S8urzIrKQ8mbnEASD9\nkefcMP7fxa7n7UvBzdmKYS/GzZnEHQ4yvZXpsHotkrALGXQh5GmhbG15e6Ty\ng5td9/O8z/uq/FNioKa2faknlJWtrkr8zPLLxlYtpxf752Sa5a0njFM5UJMz\nLHx9GVTNVKhtezby1HQWt2FDL5lCyPmpi7PuoKMERL0mVO7JMQKuEqLxZw9n\nkZBF\r\n=2z2z\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCR0fmOPASSTWWtzKREV5FwboO9Q38j9fsiqtYDLnwYhwIgNd7leI7qtAg3sqyEojpgqik+ViWKhq/IcdDeHSuhQak="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.78bcf058.0_1613090934599_0.2299483627024923"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.0c6908fd.0":{"name":"@material/mwc-list","version":"0.21.0-canary.0c6908fd.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.ed88df700.0","@material/dom":"=11.0.0-canary.ed88df700.0","@material/list":"=11.0.0-canary.ed88df700.0","@material/mwc-base":"0.21.0-canary.0c6908fd.0","@material/mwc-checkbox":"0.21.0-canary.0c6908fd.0","@material/mwc-radio":"0.21.0-canary.0c6908fd.0","@material/mwc-ripple":"0.21.0-canary.0c6908fd.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.ed88df700.0","@material/feature-targeting":"=11.0.0-canary.ed88df700.0","@material/mwc-icon":"0.21.0-canary.0c6908fd.0","@material/mwc-menu":"0.21.0-canary.0c6908fd.0","@material/ripple":"=11.0.0-canary.ed88df700.0","@material/rtl":"=11.0.0-canary.ed88df700.0","@material/theme":"=11.0.0-canary.ed88df700.0","@material/typography":"=11.0.0-canary.ed88df700.0"},"publishConfig":{"access":"public"},"gitHead":"f290af657508c2392a786548f206e90e8bc44124","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f290af657508c2392a786548f206e90e8bc44124/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.0c6908fd.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-uYibIoUWATPK9FY8kqOpKvMsvXLPZ5M6JJyA4h1cVZbz0JVAeX+vMszqKU95KkNBZkel38z8sJWSR9KpG9/SjA==","shasum":"9ae03cb2a23393e852e20cff9e3f3e5d4244428f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.0c6908fd.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJdkFCRA9TVsSAnZWagAAnd0QAITkN9STyBOrUCsO37MT\n8o+b8OEyHa2myl498oPf2vYWABLp1g8sI5J4uF93f6qnJDqKpzzY8k4vmH5o\nSvXprqYSvoTBOhM+BDcJAE7C/E8vgluMWzL1lS2grUokuzkuQx97+n2gDr/I\nvELHnKRDO+mguBSIOD8WGfP7V8uQ9w3hX9zlDAXGv5fuuCOG92ICXax5Qwbr\nmFRPvk747W1o83iRQTIhKExyDtmRrjrwCcXQ8q6Fr+sGcpsD9gBbmydDT9od\noeQqPUh3aehB2ytm4FMKgA9qsK0koCrGVVtENbjCd5IGmnFFinuValFQuB4j\n7UTHaTGQ6w2MNMmRYcflohVSpnOkoF+wkO6YNUtDoqA5y9xNmc5d4b2r62qx\nGwHMdR/23Yi9IC+FOA2PqssKGZmUpXlaP9Knse3t0hPwjqVqtxUcJwksPqzT\nWY3UBhQIeNf2try/0QtczeXFPk+Dhq96QlxNOPhSysYkRVcHs654i9N0Op6h\n94xjWcTuTjWeQ3QePq7jSLpUEfgEckDb9T0RZ6dQVMEoxj40TWdlSnKDmSk2\neiHxvJR2gujDNuoHAAhZsAoq4zjMrUjktl0xvTGniA/lpELKsUqm8fTtXFLA\nd8Kuw8ur0MwHdeqj3mnEHK56cEptA6qaTIghOBjukg+85GCt8ZB/QUfIH4yq\nrjDn\r\n=wGh8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICU/92ZPax78gR7VRXT8MJcrL5MJ5OakEBtYjv6P/JrAAiBsAsbGn2W/oXPTD4F4v9lhozrN6oD7cxIlAK+d9NWj4A=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.0c6908fd.0_1613093124420_0.7292318989705877"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.f1f34ee0.0":{"name":"@material/mwc-list","version":"0.21.0-canary.f1f34ee0.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.71fe9a067.0","@material/dom":"=11.0.0-canary.71fe9a067.0","@material/list":"=11.0.0-canary.71fe9a067.0","@material/mwc-base":"0.21.0-canary.f1f34ee0.0","@material/mwc-checkbox":"0.21.0-canary.f1f34ee0.0","@material/mwc-radio":"0.21.0-canary.f1f34ee0.0","@material/mwc-ripple":"0.21.0-canary.f1f34ee0.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.71fe9a067.0","@material/feature-targeting":"=11.0.0-canary.71fe9a067.0","@material/mwc-icon":"0.21.0-canary.f1f34ee0.0","@material/mwc-menu":"0.21.0-canary.f1f34ee0.0","@material/ripple":"=11.0.0-canary.71fe9a067.0","@material/rtl":"=11.0.0-canary.71fe9a067.0","@material/theme":"=11.0.0-canary.71fe9a067.0","@material/typography":"=11.0.0-canary.71fe9a067.0"},"publishConfig":{"access":"public"},"gitHead":"b16a616d2cecb5d8aa3c279c76b01b2f49ab6965","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b16a616d2cecb5d8aa3c279c76b01b2f49ab6965/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.f1f34ee0.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-R12x+rwB3Ns7+zpOVLG+ipOfSa0SGKCQIt8y9uWRGJ84UPF7zIlr29r2zr9e3ZKZ/6m9vwPhuN8/UIPptEUnug==","shasum":"5b49ee62b28194bc56f8eae2950faf614ca141d7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.f1f34ee0.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgJuKeCRA9TVsSAnZWagAAnCoP/1VO1DcU5DOqtVNTYDF2\nTF0BedSIktyxnBAe+KR7AM4v/Udyf8INx9Z4oqPujfiPlFQUkPohpJQ3IybZ\naYHUgMDxOp2yFztVy8Kwb+uAYQZBYQksR4yDcNa7GDxTxNlxIw/I7ZLJKYz8\ng8Q1KziHv7Rs1LG136sGNe63pKyGFmSNGI4de7s3jdJQMhE46vMSs3uO460V\nFQ/8Xyu+LYeTD6aDV5xODCN3PnaM7j5foKbqShyHJcqHNm5PgLVE/Kn4jOgR\nn9nqd/gDWBCduPq0l5TumjL4CfakT3GCV0yen+/3Ly8wML/2QsIt6JgRk54B\nokQdnE43+dGI75KdT5+EFW/btk3oMygJ0ic+WSi6P0Co2+chINn3QxrgUMPC\n9Zj7GTdNITp4CLdPf2TMmchM1zcuSVKNpL0taFT4/eQnc+PVuyR1X2n56TTc\n1UmOVJlmSvazWp1H4gVCU5f+sVfaUc5RvNxGXRoKdJQLI9tph4QlCM9wlIce\nEwOq+h+hAxsi9/fn33tHr52jpjVOcI3dvcoqhFlIzM713TgIO6KN9Dk8ilcn\nUjjNe0e1fSKHR/Zy2wxu6OrErFpZ0Ai30qDQiwk36GRLB04+GhP4+ixp16bi\n95r4qaiHNuwLe39nBrJzKsVznoJz4ESPcHM20dsp1/3M+98AIAUwyK5ZfLps\nTeBb\r\n=IszR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGW7VGdWVyLhcjC2iga9PPo0ptZXZv3F86aIsIkrNDXDAiAp6dCR9bV8YUKJIgEMUC+vVA52HbH+A3HGSUQbWz83sQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.f1f34ee0.0_1613161118405_0.504113113164129"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.d84df029.0":{"name":"@material/mwc-list","version":"0.21.0-canary.d84df029.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0fd56a86b.0","@material/dom":"=11.0.0-canary.0fd56a86b.0","@material/list":"=11.0.0-canary.0fd56a86b.0","@material/mwc-base":"0.21.0-canary.d84df029.0","@material/mwc-checkbox":"0.21.0-canary.d84df029.0","@material/mwc-radio":"0.21.0-canary.d84df029.0","@material/mwc-ripple":"0.21.0-canary.d84df029.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0fd56a86b.0","@material/feature-targeting":"=11.0.0-canary.0fd56a86b.0","@material/mwc-icon":"0.21.0-canary.d84df029.0","@material/mwc-menu":"0.21.0-canary.d84df029.0","@material/ripple":"=11.0.0-canary.0fd56a86b.0","@material/rtl":"=11.0.0-canary.0fd56a86b.0","@material/theme":"=11.0.0-canary.0fd56a86b.0","@material/typography":"=11.0.0-canary.0fd56a86b.0"},"publishConfig":{"access":"public"},"gitHead":"af09ce2e1ef6f6b486ea977ab8890e81af842541","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/af09ce2e1ef6f6b486ea977ab8890e81af842541/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.d84df029.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-XeQBv9ziXEhKq6/XEa7yb6Gal6vbcJsyYgFcNeYb4WFV2pxWxL76LjKnl56OViEMNyqP05LlZBYN3IfJbFmfSg==","shasum":"25110e8e288baae9fb4a9bed8f45dea5337e1340","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.d84df029.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLBhDCRA9TVsSAnZWagAAuWcP/3hH11H0yU8nJOcVjRau\nMjxRWaTWOeqF0VuxdSuyQH1DI+OUAbTHYSQV0F7ZBSSd60LHPTxavnLtOfPA\nDJgyfkprXAKHevhBftHiC6Ma9HIn5K/LkcXwBj/ukFNL37MxGRiW+rccNKJU\nb3cNm4p5mRR0qObLTSz3mNmkjunrxd8QHWb/uLZEuudY3OFUwDmwrbvE8BhD\n4M3ayFx4moX5f3kDdpkcZNIG5RSKx0dkKH4pWz0Y1hQZBrkqCCiM5lpl0yve\n2uCIqrsM4p1m14r8186ubl8cUFA143w76+afUdVSm/NZazpatb71uC3ad0gl\njGNgfk2ztMUVfr82Lq/LX4yFcp+vdFWAK7QzyP155KIT0YeV0KHs565yI9Qc\nJXu9c1QROq6+lzG/VKqrPMK3yWYWwLK1uWkaRWqvVTXHHrjdmBNqW+2SS5nW\n5sV4p85rVRQI254El73ZNnswdpdTfq3x9YqNVJDXPcAZ6mg8QX/tW5W0XAbX\nVneiq3xOGOrcHIXtKYUOaulzB8l7c93/p0vWzK8yzKfFdbiNtvrZIbNVpubq\nPadEB7D/7vitmqRy9OooviPBAAM1cKyPvhgjd6blr9bAKinRr/HG4KxJOd89\nBIW2ls67ZC6aKz7xSrGGxVLx4UKTGpZJ3wekn01bGo+NKJnD0w2EU1Al1zQ6\nTT8l\r\n=hQo6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCToy9T3uHhSJjh2+HB4docvLcq5u+T0UJh9eJhvbqdkgIgbb0vWbKiCnirBwf/LnnHGhE0Jtspt8CKPH5tjOAgtr0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.d84df029.0_1613502531483_0.6487293803664116"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.c525f471.0":{"name":"@material/mwc-list","version":"0.21.0-canary.c525f471.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.f9cac96cc.0","@material/dom":"=11.0.0-canary.f9cac96cc.0","@material/list":"=11.0.0-canary.f9cac96cc.0","@material/mwc-base":"0.21.0-canary.c525f471.0","@material/mwc-checkbox":"0.21.0-canary.c525f471.0","@material/mwc-radio":"0.21.0-canary.c525f471.0","@material/mwc-ripple":"0.21.0-canary.c525f471.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.f9cac96cc.0","@material/feature-targeting":"=11.0.0-canary.f9cac96cc.0","@material/mwc-icon":"0.21.0-canary.c525f471.0","@material/mwc-menu":"0.21.0-canary.c525f471.0","@material/ripple":"=11.0.0-canary.f9cac96cc.0","@material/rtl":"=11.0.0-canary.f9cac96cc.0","@material/theme":"=11.0.0-canary.f9cac96cc.0","@material/typography":"=11.0.0-canary.f9cac96cc.0"},"publishConfig":{"access":"public"},"gitHead":"eb401daa998f20b7222c2787e22c669e642586fd","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eb401daa998f20b7222c2787e22c669e642586fd/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.c525f471.0","_nodeVersion":"10.23.2","_npmVersion":"lerna/3.22.1/node@v10.23.2+x64 (linux)","dist":{"integrity":"sha512-TbUWQyVI5ey3aFRsFWPCrqcqNKuUq8RgsFixkK9adx93gMSGXbZuMwFbpTX2+VJvinPWZFifoYNyfN4x+QNLyA==","shasum":"23695352771d8c597eabb36dd2d12b22980e217b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.c525f471.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLYJuCRA9TVsSAnZWagAA+V4P/2Yn9aFC+zzgLFd1PO2i\nOcirWUVnwie6HCGep1DysGMx84+ydUevRa7ZwvskaPLLe+Lw2U/ZyjGpxVXM\npRKNYPZMkEE/WkQADbnZ+GYX9wRVizT26c6ysD6RrwAO/gk4YFQ+7yveb5HF\nofO2izj+lNWGi9Alz9BtFoNma9UGVGmbFjtkWbLdbOlNp8KC1eGxVKNFn9Po\nBqpY1+Eru1+uKIF+IoVHF5s2XGzAGLyOpNUxPKGlT/ZgnSJfgHYIeg6Kycx5\nKivCF7huPKw8CnaO0fWFlM57e+zsd/jf3JGihO7fPab0a7zEOhxGqn6AS6en\nsbu2C/D2dN2+WP5QO73jDAKj9LkpGHLwxq+ZUQRnUublkDUhaQGNPiBXjBmc\nMLwDlqjnkfMTJGS4kOfCg8e+o4qZXRjNhfcOxLHTA8fqOA6c4X5GKewdkvvi\nBLyR+5AzCHtELaPCPaP+SEcKjSOIVlH9779x6m4UN35TpN/+3pi048gfzt1A\ngT4hQaEr5A3oT8X080IsQ+7scerdGuRYNosbDWU7ZqB0i6Ea2ojUg/e8MDSH\nA5HhVZD4DCBZToQsh5adNOSGiQnQf6DK39LTFOl+lle5cFEJXK8o2XR4L/xO\nkkp9kFIAqd3EctnEqQ6zIULbH51+04WXLHm0abr5J1Be0rjHllieLowzDDrN\nAxDU\r\n=XLqJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCFVMQ8GAJfTFSBj/90KrXTnOaLxkvuJgNBNFKIM3C93AIgJFxB4pQdveyTXqTxbdD1QSUd3q89os+078qRCuj0B08="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.c525f471.0_1613595245874_0.3732180644074128"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.ba7a1b35.0":{"name":"@material/mwc-list","version":"0.21.0-canary.ba7a1b35.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.f9cac96cc.0","@material/dom":"=11.0.0-canary.f9cac96cc.0","@material/list":"=11.0.0-canary.f9cac96cc.0","@material/mwc-base":"0.21.0-canary.ba7a1b35.0","@material/mwc-checkbox":"0.21.0-canary.ba7a1b35.0","@material/mwc-radio":"0.21.0-canary.ba7a1b35.0","@material/mwc-ripple":"0.21.0-canary.ba7a1b35.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.f9cac96cc.0","@material/feature-targeting":"=11.0.0-canary.f9cac96cc.0","@material/mwc-icon":"0.21.0-canary.ba7a1b35.0","@material/mwc-menu":"0.21.0-canary.ba7a1b35.0","@material/ripple":"=11.0.0-canary.f9cac96cc.0","@material/rtl":"=11.0.0-canary.f9cac96cc.0","@material/theme":"=11.0.0-canary.f9cac96cc.0","@material/typography":"=11.0.0-canary.f9cac96cc.0"},"publishConfig":{"access":"public"},"gitHead":"5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5d1b1f5b6c909a9e26befcb63e69de98a9b6fba6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.ba7a1b35.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-ibABPXEuLkGwyIEpfFrTd7c/SrZYE53kTc2gIdTrW52kDvV8DyR6ZCMGdm8Ej8RZz7mrYfFxVs5n+z8wgglNpQ==","shasum":"05a3916b1a6fb026de3180ed24ea4c762b5f9a5e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.ba7a1b35.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgLwLtCRA9TVsSAnZWagAAOhkP/ik2cVPRCsPcXhkEuJGs\n9d/6QP6RQKKVZNcRW7hTdkrJejhD+5hJilR5pgL7W8vdRf+9KB0qhoOwLXDi\n0VtTPdobV3Hm4dlmiyvwinUvdtObkMitaEXbv9y/+UZ1bJiGY4eHoQTIelso\nCi1iJ8CQ2DoE5Aa0W9+wX3ZfXI2FKcSyR00+02tMpOT4ZP1YV6wipCdUrebf\nU4K4cB9Rp0JG8XYNJPmcKkXRRAEg0VRzQa9NRo83RlZfILaknzyjsLh3iICE\nutgMGNfnnIq81gIKTAmVP5Jky8B4ROCUNNPYdMpKo4xuktyCQnTIq2InzDiy\ndmNOjhlAgPV6sfXXd6InccS/l+7yjNt9+hi8mN91BaWWiwKlF4dfPOrXVpxD\ncgYv8rtVnxbsf6ZeqUziI61AwxAJmjUQ6LaygLf4nS2BHZR4yooO1wnhOhRD\nGso759uYcyHn9tzGWoJhN6wh85U1qhSWSe0SaTyGhSMgniTU1P0bJaxKN6+L\nEU4m6khifT0DxZykBJ67jp23DtSoZ1n2/OHgv8GPkBmQv/l4er/iKV97jAGW\nqyFwQ7CNveUTbvDVkufNUjZRdfV8CVD2Ffvu7Nv+N7D0ZEvyZeyDVeA1/mju\n7W+B1PIwDxJNDCppvQytz9fs98RHQGj9gMouqEk1qtWHlobehv0hTyoA/pNO\nN7E7\r\n=N5Lf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/CF0nfBoGYZaOI1WRcY8vcvhSgdmplFpxMInP4DRwXQIgbKEVWh86WWsta55gh1D2+XRE9DuH2ECOqwf6UrSfd0M="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.ba7a1b35.0_1613693676887_0.4595250168852292"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.9a566dda.0":{"name":"@material/mwc-list","version":"0.21.0-canary.9a566dda.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0b4a4b2eb.0","@material/dom":"=11.0.0-canary.0b4a4b2eb.0","@material/list":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-base":"0.21.0-canary.9a566dda.0","@material/mwc-checkbox":"0.21.0-canary.9a566dda.0","@material/mwc-radio":"0.21.0-canary.9a566dda.0","@material/mwc-ripple":"0.21.0-canary.9a566dda.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0b4a4b2eb.0","@material/feature-targeting":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-icon":"0.21.0-canary.9a566dda.0","@material/mwc-menu":"0.21.0-canary.9a566dda.0","@material/ripple":"=11.0.0-canary.0b4a4b2eb.0","@material/rtl":"=11.0.0-canary.0b4a4b2eb.0","@material/theme":"=11.0.0-canary.0b4a4b2eb.0","@material/typography":"=11.0.0-canary.0b4a4b2eb.0"},"publishConfig":{"access":"public"},"gitHead":"5093d1f8984fe9f44acd6597512a2de2ef5fbbca","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5093d1f8984fe9f44acd6597512a2de2ef5fbbca/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.9a566dda.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-M0rC+DTPmOzF4gqiH6s2IbwIFksGRTksuOG66H1jsn7ipEow573cGF5K5KpWPqTa1ml0jSAA3Kgfyu2duDbNbw==","shasum":"d6cf8b00bf3e0f68e52290ac92e59f7c5d8cb29a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.9a566dda.0.tgz","fileCount":45,"unpackedSize":246634,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgMAWzCRA9TVsSAnZWagAA2fMP/2DQcQ61IxsdO5ji4+GL\n1ZrpYlkKitJ2sgaU/NfTZF6fTROLq/WC50w0pwLetfFvhphKPrVl8wikrGOa\nT/jSPKLFNYigdG9rWRCK6mFqOlFij3u+sTgmDGNngV/9dfPaLyozkP6IEwVH\n/uCgYY0nj/BOt1QcMxlbqdJMP1VAbZjb03IH9+NQEwlgX5k4wmURRXGLgOPW\niR2rVRcP+/gkbr5X8Lx2ZVlLOz2KqRUrqRtevyDPrJcNX8dBV1guwzyef24m\nFv5bmZO/TiVdQFzMQYmY2yXxyN5p7h+LQydq5yNelC5P+uLstFF/PpmxAexA\n66wKJ4zg3WbBP1B8F9cFwW26EumDpbWH5rBEBp/pY0SKLs2Cx18Dsu8jFT2x\nOIFKakClC57bTtfCapgQOAnGhEWkyhspDYhjoSS2usdk3AwAEUmZ8FH3OJnJ\nrKffBLhy95wypOTjjt5cGegQ40PLSiJxdEWwVoRGITo8rlw8oDtOqnrro71S\nLMXKnpj4AMiBsiWxcf4Tw1sfrCdX7N/q6WdQr4HBH8gEkctLFEz9TC8olWO5\nR6q4lNDoCu3l6BscvMXDwW1vzGJCPQoaibuuN3/rHt5BH4Gm7VKqa+lwQ4jq\ny9kl2RuqUOtcMEfRImYXV8UstnAyu9p7CIBIhXHt4dP3HmrcV8dekoyvarBj\ncnyb\r\n=mcZs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHkiOTXaIu8IHx5fw6PwCkEMu5kS8WdI3fsTTbmU1NikAiBwWTzPkvMP/INkw8ByGplbKtNI8sbTIraOZFSRUaM63A=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.9a566dda.0_1613759923437_0.8939749244992676"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.55addb8c.0":{"name":"@material/mwc-list","version":"0.21.0-canary.55addb8c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0b4a4b2eb.0","@material/dom":"=11.0.0-canary.0b4a4b2eb.0","@material/list":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-base":"0.21.0-canary.55addb8c.0","@material/mwc-checkbox":"0.21.0-canary.55addb8c.0","@material/mwc-radio":"0.21.0-canary.55addb8c.0","@material/mwc-ripple":"0.21.0-canary.55addb8c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0b4a4b2eb.0","@material/feature-targeting":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-icon":"0.21.0-canary.55addb8c.0","@material/mwc-menu":"0.21.0-canary.55addb8c.0","@material/ripple":"=11.0.0-canary.0b4a4b2eb.0","@material/rtl":"=11.0.0-canary.0b4a4b2eb.0","@material/theme":"=11.0.0-canary.0b4a4b2eb.0","@material/typography":"=11.0.0-canary.0b4a4b2eb.0"},"publishConfig":{"access":"public"},"gitHead":"02634c071c90f7c1124ae44f34cb20a61bf49350","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02634c071c90f7c1124ae44f34cb20a61bf49350/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.55addb8c.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-I2wg5P0AKOpEQfbHg1Ze5IZ4s4C44fwZkFnUYW/eK6EI/jK8KCibJWHCEEV7KQmzFBaxLd6rGcaFv6fO8lHvEg==","shasum":"095a17fdaa940a7053b6fd1ef3627c53e83b0a9a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.55addb8c.0.tgz","fileCount":45,"unpackedSize":246881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgMDWKCRA9TVsSAnZWagAAed8P/ArUFxMmd2nYHakGL7n/\nOXMffkNPDvRUPljTm7k8ys2g1gmbFv13Px70LFGJDNXeRhgeoa3qX56zWx70\nmxyFJVrnqEH0eqozbx3z5zVDL7SE6q4JIdq437eUmHttKkeL0hUFj6v8x2sB\nSQOOBIi70p8ofjkhbMM5O/yOBiZjlp9K+KKaGoNCZ5pbNY+lwju1+SwJSvJH\njKxsjjts6YrNaIhEt9n+DTzZgjULtkdklGrITkzSvtliP9vmd/MvpVMBjwAK\nqzLJxeyixQcvImLeZCZuHayW1swtw3pS1If4q3Q5t5F81aJyxZmvXWxoqKv4\nm83IC7sSJQ0lAlB/4pA04VvROiYhzqqesboYzxT6tEGCBhYazziZ4vvHvH6T\ngJD2i+cg9VbN3pWhvsieTmQVE+cIRuJVsHatHeWeznbLss9fO+2q0KnHnNNj\nwRA2A4sSdNe8eZvzZ/gWVMdc4hkfv6n4X6V8GZm1VixEMy/Ebmz5l2s4ccbq\n4/2cKeeN4X1TJab8J9kcssBz/B0YSACPFcVQyhHPCJ1sD9y6O2tAnpG7/l5D\n8ZMf8nNx9pXg3PNn0fM7WnIMf0Sc83BoffbfrLktQAxdSRwC2Y48mXnRsbiP\nZ7WkrAT5Z9kYq6VXGOvOHnCARCBENonre19qxpit61j/r87Y9yW9ajX7FbKW\n6E0i\r\n=izq2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCj/pDeaYYWRgU71O3jkvy1i2aIdilUgTxkzsRSslLUwIgaMsyCwXsD68qK8qnemzp+13HMLn3V/vkhyQyNvRkBxs="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.55addb8c.0_1613772170265_0.6355720201910746"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.85dd5e9b.0":{"name":"@material/mwc-list","version":"0.21.0-canary.85dd5e9b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0b4a4b2eb.0","@material/dom":"=11.0.0-canary.0b4a4b2eb.0","@material/list":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-base":"0.21.0-canary.85dd5e9b.0","@material/mwc-checkbox":"0.21.0-canary.85dd5e9b.0","@material/mwc-radio":"0.21.0-canary.85dd5e9b.0","@material/mwc-ripple":"0.21.0-canary.85dd5e9b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0b4a4b2eb.0","@material/feature-targeting":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-icon":"0.21.0-canary.85dd5e9b.0","@material/mwc-menu":"0.21.0-canary.85dd5e9b.0","@material/ripple":"=11.0.0-canary.0b4a4b2eb.0","@material/rtl":"=11.0.0-canary.0b4a4b2eb.0","@material/theme":"=11.0.0-canary.0b4a4b2eb.0","@material/typography":"=11.0.0-canary.0b4a4b2eb.0"},"publishConfig":{"access":"public"},"gitHead":"a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a723fb0b68d5c0ab6eb13c066a9c255b58d1e19f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.85dd5e9b.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-mcgBXXCFOF5miECCUX0Qqd5niWZumml6Vo0jYThNr1MI2BfyVg3LHHd8IvQASLCAnIjmAFmaghiZh7rPgtNrVg==","shasum":"a04911e378f4336dcbae57aeed86c0f9ca7ab75b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.85dd5e9b.0.tgz","fileCount":45,"unpackedSize":246881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNGZTCRA9TVsSAnZWagAArrYP/07k7Groxf4ECBuADs1C\nzsJmjP6715w9FgCuTqtPbnYz5iM7nXgebTn6WtbqMgQFxekX9YTjKWXR8n6H\nLEjqMJBiQ1CRuGAQhR1YNmiP0Z3v6Y/Tp36KD8mK8FrWCT8tQVs53l8Q00z7\nQAxoKeR89vc35w+AEXW5BjltElj/EZeT9qxJdsL8oPbmlce+LlZZ92ZbLYGd\ncTICaMxWAKkZH5Gu8CxGxorWmHmkVCjY5GS6oQb6bfOY+DVFsiK7XQj6E7Xh\nD/NMKtU+UIs59v7s60M9X8lzjaZw0m1XD3/ttENY8lcr/YIfUbeIf3JfBfaW\nbEgzvWxJeV/50qyW+qwyCTuIwMKm2mYjYWYUliivuHF+dhoLQyHYWkYQcyhi\nhIGIF76JICdJuAbSOn2TSjYjPHw2EZcw5e1eGgvkbiaKbW0U2tMb1jtqsEdA\n4jzm5CK+PYtHK8AuppNhmffOsmk9B5IdXzZh12UwazZ17eM7AQUU4o4Iv3TE\npjCEgBPE8T2hoUdb8kygLlS+yLvvIqOCPIZVxp5PLynAI3tLnP7ROBpSSYAS\nxmkS4jpRiYI+/Ch2gs5bpe5BOsI6n9cL/3fZv/w/NtWp91l/d9b82+zhL59l\npl+qsWV09ZrjsP9UZGe6Dbq5npWlFajzf0gS3uGUddkRoWw2muWTjMp+zHBe\n+8uQ\r\n=r9M1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC1sC3pJXnA8i/094LX1wWzDLTA1oqVL+h8dpB9HZ+/rAiAV2R4Jg4vK6MhEpxkRx5Q1WrwrAduPU+SYxbwIcDNqOQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.85dd5e9b.0_1614046802187_0.7452346728327315"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.aa3e078e.0":{"name":"@material/mwc-list","version":"0.21.0-canary.aa3e078e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0b4a4b2eb.0","@material/dom":"=11.0.0-canary.0b4a4b2eb.0","@material/list":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-base":"0.21.0-canary.aa3e078e.0","@material/mwc-checkbox":"0.21.0-canary.aa3e078e.0","@material/mwc-radio":"0.21.0-canary.aa3e078e.0","@material/mwc-ripple":"0.21.0-canary.aa3e078e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0b4a4b2eb.0","@material/feature-targeting":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-icon":"0.21.0-canary.aa3e078e.0","@material/mwc-menu":"0.21.0-canary.aa3e078e.0","@material/ripple":"=11.0.0-canary.0b4a4b2eb.0","@material/rtl":"=11.0.0-canary.0b4a4b2eb.0","@material/theme":"=11.0.0-canary.0b4a4b2eb.0","@material/typography":"=11.0.0-canary.0b4a4b2eb.0"},"publishConfig":{"access":"public"},"gitHead":"2acbbc6ed6d9f649621ee54e8265c9d26c49f634","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2acbbc6ed6d9f649621ee54e8265c9d26c49f634/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.aa3e078e.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-BkQrT/ZC+8SecXeffqxd1LWZW8z23t2GjC1WY/OkLe9nQjR4Qj4zlyCwh1rA55uBP2c2Z1o1fm7QxoZq5oCfsw==","shasum":"a9076f882e0d739994fa5c5f8e9a46826f7f36c6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.aa3e078e.0.tgz","fileCount":45,"unpackedSize":246881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgNThCCRA9TVsSAnZWagAAsTMP/jQRAcacbtd+S0+QjNGm\nX5kcSqjPyGIBrnWBuun6W7fC1dzapzFRJoNnz8ftGskvq/PFCW5pk2tcNdfT\nBdCjNPHd1Jr7oxZEDn++h3i5CQeItPft3/gPZYdWkM8+uzCcdbpcJ8R5ogYu\ndZcMEPu0BMLeLQY8Gdnx9ekrin/6iPOf0t1okjwn5m+iwRTeUh3sR5V5VXiy\ngPYXQnIOZTt3wbmg4dfjyDe8rFsJ/PLsFxrHnS48eZJBdC3fkhonPlraIW5O\n8Y6pEdnMcOtCAHg8zBMfa3vK71wy0L4cEXwyO3loKMcl0IgICnlXxZ7ZHhh1\nErCN6jGs6LT3sKqNTyYT5XldYfjYNO8BTBAdImzTFZIXmzc5IFDvDxX7ckdU\nnGVCMAOlmAqgoNdGeGPbMROZxCDyMr13jBLrnVQk30wVtlgh2KgmJsZkTSpE\nwsOGTNw+RI6LK3ZiDd7kvgmCShP1E0ZNNAT/e2MmGJ0t/a6EzHE0BH4oq0ag\ndsW01SW5ElLBhUIe4/Hw2HD6k1swM9Si3IBzYat8xLEjnvPIVvXLRaQjjOhs\n0lxIRvjpXX2eIWXberxW9sqgyqVyjiBhSWEimIK0rN7O+UztoH0ZXOnsYIQl\nes+q/AlgTYdjEo68Otr/+3kpVeZpDrXs1Vi1SsvzUdHpSU4mc7+dOn8tC0Jk\n+4qB\r\n=v0x7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1itcK1eNr7KEVAhAELMr4b4jhgCXI61+nn6VIz+Y7NwIhAIKwqlCsUux4M5D5aZP2qP96rf4cDXyNKlfNtml6H36X"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.aa3e078e.0_1614100546025_0.3753472093637549"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.dccd254e.0":{"name":"@material/mwc-list","version":"0.21.0-canary.dccd254e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0b4a4b2eb.0","@material/dom":"=11.0.0-canary.0b4a4b2eb.0","@material/list":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-base":"0.21.0-canary.dccd254e.0","@material/mwc-checkbox":"0.21.0-canary.dccd254e.0","@material/mwc-radio":"0.21.0-canary.dccd254e.0","@material/mwc-ripple":"0.21.0-canary.dccd254e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0b4a4b2eb.0","@material/feature-targeting":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-icon":"0.21.0-canary.dccd254e.0","@material/mwc-menu":"0.21.0-canary.dccd254e.0","@material/ripple":"=11.0.0-canary.0b4a4b2eb.0","@material/rtl":"=11.0.0-canary.0b4a4b2eb.0","@material/theme":"=11.0.0-canary.0b4a4b2eb.0","@material/typography":"=11.0.0-canary.0b4a4b2eb.0"},"publishConfig":{"access":"public"},"gitHead":"7c3011f1d9328f6405596f794c28c98485d9d40b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c3011f1d9328f6405596f794c28c98485d9d40b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.dccd254e.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-XS4Ga1oGDLVmRpo9THS7U5EVIA5lV7vGVxhbPAAnF2MLKMCpoj7Bs7zcRkdrUgtIeaUHf4mxdYl97526Z4Y4+g==","shasum":"16e02737fdd1b5a8a0be9ea6fa4c7dccf811ecd2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.dccd254e.0.tgz","fileCount":45,"unpackedSize":246881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgOWPZCRA9TVsSAnZWagAAW14P/0dcxSG4aTuQ/HplbMYb\nXkgemeEqMqMoaLkcBjlsVYvg/KUgW46QnEBxNxosNLMNV1yNBQRposy/0k+A\nRf944NwgwBLe7+a1UdcyueTeobDt+DGE9LoMqKIDAI3EIi9l8msQFpXaTfnm\nNjogesMykv7nSBEZhZ2B7i16Qs9GXoTl4BOX/Tcz/G5zYI4lGp28xmDXGUkz\nE/7CWRSB3ap0l4QbVomoXImeABbBfTktfKzmWKpN0iRFunBPayBpXg1h0HqA\n8U7bxjDJF7XRrnwaVs4hmnysWPdpf+jYmSEtyZfZfu3u5KhEcbxeI7kBFo0T\n46Mxz0syHsbbMYcQJTCXh9nfYWjdAHC823GFAq8084s2l9SVu639/nXoOnUq\n8v6OGtMLZyHl7eJXsWOAt7mANyldLtCHBiASJv6sKswtfWXhXV/OSVR3V7hj\nlyIUta7sm4G1Y18F4+r6N9PqKZedx0MSTW+eGuO6edBi34+83krs8YIyb9TE\nxzNsnZwiLU4WVJV1yNOxTy0dP3nQcjUhLUMJsffm0Yx7Ld9+mpPy2Cy1XmOb\ncN7YvWo09gDl6WHGwJvqy4In+7ctW9gi3PBcnCk3JjSVCDY+GfTsFR7JiZsW\nlh3DcuQlAAzuJvdg3W2pwZD1+nfdxus8v2307btJIIcQYUxncXsO8AnIfi5Y\n4vJS\r\n=l/Yr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCnvdXADH1mrFpbeS1gsS/s+FoKL3Wlrgi8P6K2I7PnagIgMgKAo/vr6Ul/8MdP55inZMOXbYch/O6rcn/P1dYUDPw="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.dccd254e.0_1614373848663_0.9959213998665737"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.7dd1a27d.0":{"name":"@material/mwc-list","version":"0.21.0-canary.7dd1a27d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0b4a4b2eb.0","@material/dom":"=11.0.0-canary.0b4a4b2eb.0","@material/list":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-base":"0.21.0-canary.7dd1a27d.0","@material/mwc-checkbox":"0.21.0-canary.7dd1a27d.0","@material/mwc-radio":"0.21.0-canary.7dd1a27d.0","@material/mwc-ripple":"0.21.0-canary.7dd1a27d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0b4a4b2eb.0","@material/feature-targeting":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-icon":"0.21.0-canary.7dd1a27d.0","@material/mwc-menu":"0.21.0-canary.7dd1a27d.0","@material/ripple":"=11.0.0-canary.0b4a4b2eb.0","@material/rtl":"=11.0.0-canary.0b4a4b2eb.0","@material/theme":"=11.0.0-canary.0b4a4b2eb.0","@material/typography":"=11.0.0-canary.0b4a4b2eb.0"},"publishConfig":{"access":"public"},"gitHead":"15fa381ead1eb4897aa006da0f445765fa9a037b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/15fa381ead1eb4897aa006da0f445765fa9a037b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.7dd1a27d.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-rzvcBSW51RK9xXP0zJgRzixmJjgA3Mei5wPtxtK1+yfvnOkvtkJ8r8q32B0Swv9FgNiH0CK3XgtgRJ46o5AiMQ==","shasum":"386e3c88830b6a7b046fa01416748797035bcda1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.7dd1a27d.0.tgz","fileCount":45,"unpackedSize":246881,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPWRGCRA9TVsSAnZWagAABKMP/2GDkAdSF8vTMLZAsp3o\nMLNs3W3lHq2M8RxvSPYfl6igBlu+9JgPupuHisxDBiPEMrJ4ifrpXVo7aBdI\ntci/OXemh4pC6xKZWQJdoyZQGwEwhOms2X5SyRU4dTkljdU/Kbm270CRmHXF\nHfSitgAmL3oEby4B2M9KvGuIO/UhRlUM75ozDaKsTm25fBBaTO0Fg3bVUplS\nqOVq7yTksvlvc28tbvDkv+XHsGNLBD52OQNGp2ci8N8R9NDdxI6zeP4gWms6\n6ke8u8J6gahg9jjlNgouXVrUaJ9tX0gZLijeTBgiuDc8pyRMMXEU9JifQ1D6\nOD2l79wTJQn3HqEl8BaIEVmRwRSBo7WLNrTRnTYmIrHktaJ1I7n6lfEv2sGb\nJzt6S2uKYA2pBe6F0v6fahPO3dIxLdLXrdh4K7lgg0k1jquE1BO9Yjh+uvTx\nudp9rO3wDHblMTl0xWOWa21bvW2z1IAD9H+b0JfB4+HYy/eNYVS+hJTdauWK\ndj+KKnSGDsHO92x+37R57yELKJ6qrajCSWSqi+txJhaPgDU5iJiiIWzkdPEo\nc5/EWKJnebpvIce8iibbjRV5OkTJHRENxIAkimSbS9WsDal6dWmndopAqpFQ\nD1vO1qAvpG0A2qo4YHuGL8jw1MbTFzDCRNZaGKBaPZDTQxgf9aL/gqp6fwQs\nE1HY\r\n=4Yvn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHM0FR4ZehjHLhbDeHA/rmH6DQoqePfiFsz7UkxADxOiAiAwomEO4QexRbV9cug7PsR3T6AT4TxtmnZY+jIrbb1+ow=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.7dd1a27d.0_1614636102419_0.18331229344825317"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.12574572.0":{"name":"@material/mwc-list","version":"0.21.0-canary.12574572.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0b4a4b2eb.0","@material/dom":"=11.0.0-canary.0b4a4b2eb.0","@material/list":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-base":"0.21.0-canary.12574572.0","@material/mwc-checkbox":"0.21.0-canary.12574572.0","@material/mwc-radio":"0.21.0-canary.12574572.0","@material/mwc-ripple":"0.21.0-canary.12574572.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0b4a4b2eb.0","@material/feature-targeting":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-icon":"0.21.0-canary.12574572.0","@material/mwc-menu":"0.21.0-canary.12574572.0","@material/ripple":"=11.0.0-canary.0b4a4b2eb.0","@material/rtl":"=11.0.0-canary.0b4a4b2eb.0","@material/theme":"=11.0.0-canary.0b4a4b2eb.0","@material/typography":"=11.0.0-canary.0b4a4b2eb.0"},"publishConfig":{"access":"public"},"gitHead":"043d9159945b812192eb864b33d16f892831b4d9","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/043d9159945b812192eb864b33d16f892831b4d9/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.12574572.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-Q64eUJhx+YQlreI0zoB0OdxDiw18wiQFFxfCJOoDDOwDZB9Icya/bB1iSOp0iXld8McRX3YrN3Y5H4C0396C7Q==","shasum":"482c500b805c74ee5eff2d4b393f0f1525946e30","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.12574572.0.tgz","fileCount":45,"unpackedSize":246899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPqBLCRA9TVsSAnZWagAA1MgP/R5keNq1O9uzH1QwCH2d\nB/ZI39PS+8H5/WXeC+KpHXlJZrNcLSxT4HdyOCKwphL1Tk32lF3WFQpI4Ng9\nyMiZCSp7I5ELPF8HUEZegLRRC+T1Tavo47Qi/rpyESiWzGWuFsS1ouPP46iR\nOSdyFE1Tx5LoQ/hW+6ZZgSGIQXxcUQnorXAWpWRRGMLu+iciEiv48UsvCejZ\nrwG8j2AaNT3wtlHQ0TM0EbknOpvKKuhVm/+l/uOMB0VJe3n1Whgx0Xxwk+x2\nsnSZ0hiFZIoW53yDZyPC7LLlPW8+z1Y+XppnbxEBbEUeREIlGUFz8FOJLOBf\nazCIVFS1Tqq8ziOJDMSkGYT95fmlS0txutd3hJyDaQhcEWBWJy8OXTIXSxCY\n/uX7ZYu6Co3wBXdZ86oLhXme5kErmw/r70f60XnMBHXO2OKA0+/mMraUCqp7\nCRvamhMK2Ej35jl64Ye8baFxRaOW7enz80ntPyvWLrEqj+8zKjEUZFXeVfHy\nNJO5PVRtw+yAJxxJ97tQnuoRcPZ2MuOU4Co+bBvarkay/DvXCu25rUtb/PH6\n5rCFvZegZTiHfJExylidSekKNmN6+E4wrM7bRodfoeg/5oG0MA1xnPDoO4bZ\n1YnIYaQhGVglobQJMvsyx8BhAzhKlDFHL8VZtc1SVj5GogM8K7EJ/XssBZjN\nm3/M\r\n=Girl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH6I8eNpONL6WwUQvjoxcSJ2dBQELLCsHxeBiu7uMbLYAiEAlVS+/lWaFEXE2jjAfWWGKMRUodiUqNKYcnbqEa2Rbfc="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.12574572.0_1614717002991_0.05950292187974737"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.1109a3d3.0":{"name":"@material/mwc-list","version":"0.21.0-canary.1109a3d3.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0b4a4b2eb.0","@material/dom":"=11.0.0-canary.0b4a4b2eb.0","@material/list":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-base":"0.21.0-canary.1109a3d3.0","@material/mwc-checkbox":"0.21.0-canary.1109a3d3.0","@material/mwc-radio":"0.21.0-canary.1109a3d3.0","@material/mwc-ripple":"0.21.0-canary.1109a3d3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0b4a4b2eb.0","@material/feature-targeting":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-icon":"0.21.0-canary.1109a3d3.0","@material/mwc-menu":"0.21.0-canary.1109a3d3.0","@material/ripple":"=11.0.0-canary.0b4a4b2eb.0","@material/rtl":"=11.0.0-canary.0b4a4b2eb.0","@material/theme":"=11.0.0-canary.0b4a4b2eb.0","@material/typography":"=11.0.0-canary.0b4a4b2eb.0"},"publishConfig":{"access":"public"},"gitHead":"8cdd512cc62bfc703a1cc766d67d04509e4e0c08","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8cdd512cc62bfc703a1cc766d67d04509e4e0c08/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.1109a3d3.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-9WVuvy02MwRaL/icUbikp40BgJclrb1Z6q4TSdXL4FgEpk+rlHla08aADufeu9rSAunHRdkSXyTA+Hx7qK4DjA==","shasum":"4003f6ca52c3de05a883c0e4bfd143ebc0a7795c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.1109a3d3.0.tgz","fileCount":45,"unpackedSize":246899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgPqGFCRA9TVsSAnZWagAA3b4P/16/ujLf99YYWbGd2MTa\nfeu2EMZLREFcM8dbFlS1jQwLUaAy4EFXXHCll2UnLY1vWuAa+vOgj6dV9YKs\nqaqNkFNeU7nNJF2Zh9s4r7j8F0XcYcL3Xfe2gEig/yhBzS7MGfHrHXF2bEC2\nme0wj0cZdnzhxmzvENBVVRTkb0SAn/hsVshX0nUTaIiTGkjUDtvFnBgrHedK\nTxcxCy9GP/g9wAe4qwnrufZ+TVmHr1nyshQfUvpz1/08WyG+BB7D84sxQ0Fo\nNY9Aur0XUrQRCtQfBwzm9h4qaghUYErECkS4vWK7NuGk1h3Y++DXHbyFD5Mp\nI/999rnfgImReKUH5qIi/G1OG9zIrJ4FhetD3jvY/TjvTzKvRLzSUS/K+yeA\nBFxEzhbq+8vu7cRBHgrY0h4G+OPeHIIGvyKHRWWZIHwa2dABYLxSnmEiVR2R\nywswUe4Z4h/RajiDb5OczL3EXYiwPdLO+ooPkscZtI4aMfVT9n3o9OT5AHGh\nBJro2Jc1s39rKGI1hoSOWeVETirjJjJg+IfxBWwj8M/AcK/R1l74V6Mypm5+\nBraTxpJb5yfVU0xlnrZzuPfAuxB8Jlwh6ckY74zGBtFE5qaBNK6I8O3rYu1I\neKp52MaZ+CdYM0IBpfs8Q1BjVfWKRzxX8DCzqbhHW7PoPUNGSd6saXUwPNDE\ntMqV\r\n=3c5V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwmPv4GcuCUL6peNtuu3llvrcue9KSARvepTXVkhtSYAiEArivpfK1/9Fxs2tU9wLo7+DgIvLdLOvFY1RxcSxRR0LY="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.1109a3d3.0_1614717316837_0.8664871344416578"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.b9cd8739.0":{"name":"@material/mwc-list","version":"0.21.0-canary.b9cd8739.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0b4a4b2eb.0","@material/dom":"=11.0.0-canary.0b4a4b2eb.0","@material/list":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-base":"0.21.0-canary.b9cd8739.0","@material/mwc-checkbox":"0.21.0-canary.b9cd8739.0","@material/mwc-radio":"0.21.0-canary.b9cd8739.0","@material/mwc-ripple":"0.21.0-canary.b9cd8739.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0b4a4b2eb.0","@material/feature-targeting":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-icon":"0.21.0-canary.b9cd8739.0","@material/mwc-menu":"0.21.0-canary.b9cd8739.0","@material/ripple":"=11.0.0-canary.0b4a4b2eb.0","@material/rtl":"=11.0.0-canary.0b4a4b2eb.0","@material/theme":"=11.0.0-canary.0b4a4b2eb.0","@material/typography":"=11.0.0-canary.0b4a4b2eb.0"},"publishConfig":{"access":"public"},"gitHead":"89fe0448abab4c371af17b2866ec736d9ebd8cae","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89fe0448abab4c371af17b2866ec736d9ebd8cae/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.b9cd8739.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-fWbTCo6mCUoWbE43hJMzU6n3XO1SQ9oJ87UfGjvrnQAvaQnir96E6XvR8D4iXeDQXCV2ceBdrL2K6fpMhOesCQ==","shasum":"7f862a116f322bc2fb612a1d6b6358b7dbb7fa41","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.b9cd8739.0.tgz","fileCount":45,"unpackedSize":246899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgP8v3CRA9TVsSAnZWagAA4OwP/Rsg+BjmcHbG8Wr6Lwa+\nq1OfORoZj0P7qGhpcz/uybhQCJsTzBcWs8+LyiZF/qtkBJkTzm28LaoRvD+Y\njehVCSYrRg6hyI2K79Xaxu0bhGDpB9855QqUB4kI1YF3Kt99G1hRXpuC8xUh\n2dPQd8u5kwowQBM3gAEmVw+h3gw/ZCRIkQ1ozVj24qLYylFRNx5rPK3dDUCB\n/jvWncZnvmSjVeGvlfhHRW/8+ygzSGVF/1QMFix/DUV5A21MY7UXcpmGIeDM\nj8zpoRFAbmICEXRGk1ZqjZBkEnfneYoFMggz3NuVxSDnNiyeZOkMH8uEfeC+\n72uag7+W20sQgdBcaDyvIeVKtEX0QFJ843qXM6VvML9CsGbJkMvrretZs3U+\nKFkxDcEuHNS9erMAhnzsWfmDBmaONQoawJZREpuk7qzZe/ioo6IuLdXCDXMr\nVfJPLWgGfv79T6Fsx4sUNzV9+iiNG71+WeYKLB98ZDg3B/rLYHpwHymhCGCo\nxuM0MZxtD0rg6E05KW1+c6yGv62s23GIX8HsxiU484n/f0wJ10AEzaQjwmUG\n3+whEIZEK88r14x2utdw7qYBM52Z4It1ghpoT3SZoGWVAyWxY8bBEIk9pLTF\n0uqyawefuh9Q6DWZDlfB2rTZkKz91TgcYGU/3JbrtoE0dsO5tyBBgvrmyi9H\nRjOu\r\n=0Jmo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBvsdWFBnheY4HLPLCFWFGXb9lL8Yzpgfistp6tdzYYdAiEAgFcqsFsfMXU2H6NCPMWiDO674Bp5HxNGd0EZKZKflPw="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.b9cd8739.0_1614793719510_0.9400055050792671"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.71ee796a.0":{"name":"@material/mwc-list","version":"0.21.0-canary.71ee796a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.0b4a4b2eb.0","@material/dom":"=11.0.0-canary.0b4a4b2eb.0","@material/list":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-base":"0.21.0-canary.71ee796a.0","@material/mwc-checkbox":"0.21.0-canary.71ee796a.0","@material/mwc-radio":"0.21.0-canary.71ee796a.0","@material/mwc-ripple":"0.21.0-canary.71ee796a.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.0b4a4b2eb.0","@material/feature-targeting":"=11.0.0-canary.0b4a4b2eb.0","@material/mwc-icon":"0.21.0-canary.71ee796a.0","@material/mwc-menu":"0.21.0-canary.71ee796a.0","@material/ripple":"=11.0.0-canary.0b4a4b2eb.0","@material/rtl":"=11.0.0-canary.0b4a4b2eb.0","@material/theme":"=11.0.0-canary.0b4a4b2eb.0","@material/typography":"=11.0.0-canary.0b4a4b2eb.0"},"publishConfig":{"access":"public"},"gitHead":"d989f6470cdcdd144c7021a4eb0ea47e63945cc7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d989f6470cdcdd144c7021a4eb0ea47e63945cc7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.71ee796a.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-dG5haW1WuJqc/lE2+RMqQq31VlFeTM75R5yUKjcpovVVmQ/jbqyJNYhzwoW8ThTsWX3PPBnQqph6h9HOWuEDMQ==","shasum":"19996b47f467f2b54f5029cbe5cdf81458f53236","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.71ee796a.0.tgz","fileCount":45,"unpackedSize":246899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgP+2DCRA9TVsSAnZWagAAKQ0QAJxjUenARg4bGdP7yyt/\nZb45wZu+RB+XVmbzJTAcJWiDeQqU6kZ8Rvsua5dcV//jE3jDYEnOw1Kmaiu2\nsJI6xOZ1ESEysKS7l2E0aylv+M/56KIe2sGXzAtd1x8hXOhTbRht9RmmIxsF\nttZH6xxrLFHyghJU5bTurWnE3Uni+aG2IIw+a4yXpBBgzeGkqGhexedBCNM0\nOYGfa6EgsclA7nho0Dsqg/5Db73LZKzknXBuDabxBjndsR7pfz/dy83VdiH9\nEmPGbAzgTzv8gym4PsWYR20KO+MOQhi0+YXDwuYt3vxKO5tMK2oazORJIwFh\nlwHdIQ7DIsQ851ROY9zVRY/pa3RUXpa3oCrLvJR1DBlUSonGXY4YGh8DmWT6\n9cbkp+/ZROMi//CmAeyrU+zxC6wssvMwjky/K9vh+wpdXRBpqK2fGYWppk6/\ntE3aWOGpM4sk7MyVnjSfWSwmz/VBw9vqtqhoUeQ2mcNm54JOSeAv4QWJ75FL\nHi+ch+G+TrMY/akrvJzugQac7xrkdeepQ6GM/5eJ6MrDzA5nJaY3JlirMje+\nQ7e9EdtzHtcAASoJogy23sLVtpnDV8cJSj7BlLdAMsGfSHi8hs2deuQ8yNBC\n1uqwhLg469yE189GmJixg6K4gpo4y3eueLW9NH+zsDsVjAey96rQaZR0kvEo\na7z1\r\n=DRpF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHcIdUda7PW6HeLFgmy2wPZYnu44pA1lPJzER1R8Rvy6AiBEHIv31FKkSOksxc43Iof8oOpV48ZOSa49F30hZxBJyg=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.71ee796a.0_1614802307021_0.8148694428358143"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.2be191ed.0":{"name":"@material/mwc-list","version":"0.21.0-canary.2be191ed.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.c7d98fcde.0","@material/dom":"=11.0.0-canary.c7d98fcde.0","@material/list":"=11.0.0-canary.c7d98fcde.0","@material/mwc-base":"0.21.0-canary.2be191ed.0","@material/mwc-checkbox":"0.21.0-canary.2be191ed.0","@material/mwc-radio":"0.21.0-canary.2be191ed.0","@material/mwc-ripple":"0.21.0-canary.2be191ed.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.c7d98fcde.0","@material/feature-targeting":"=11.0.0-canary.c7d98fcde.0","@material/mwc-icon":"0.21.0-canary.2be191ed.0","@material/mwc-menu":"0.21.0-canary.2be191ed.0","@material/ripple":"=11.0.0-canary.c7d98fcde.0","@material/rtl":"=11.0.0-canary.c7d98fcde.0","@material/theme":"=11.0.0-canary.c7d98fcde.0","@material/typography":"=11.0.0-canary.c7d98fcde.0"},"publishConfig":{"access":"public"},"gitHead":"e273563187c689092eb053c50fd9b94385380fb8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e273563187c689092eb053c50fd9b94385380fb8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.2be191ed.0","_nodeVersion":"10.23.3","_npmVersion":"lerna/3.22.1/node@v10.23.3+x64 (linux)","dist":{"integrity":"sha512-7A05hR8UFeEJx0EoJc6B07WwF/0CAoI34RDDidZwjiJrW3M0fFgDhhpQ9pdhUTozmPTClJ7al6EIr13lr1wosA==","shasum":"82ce0469b1dfb9bd7d2137737c9ccbc284084a94","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.2be191ed.0.tgz","fileCount":45,"unpackedSize":246899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQAURCRA9TVsSAnZWagAAhx8P/1Xd/ZrsLgUUWinmvd8E\natX8G25q93H3RqzEZugbwgDbnCJuv+mV/sQcGUsIiFAdLKGK+TpRlR2VI1rX\nHt0H4BVwB0O1pKXmPhEbeLZZhH8NQ/eKC1jFEnphznylPdXuj0dqddGmIJW4\n/mL+inPTH3r+kB8a32ERMWZDuyVdr07AP8SHTCJgzLfYi8PEEkVlm/hfRLT0\n19I9FUlzK8aKnaN+FqkwmliAb4h+usIg0IjD4aRGdGOtqhVgSd0fsuaxJ+K2\no/rjSFKJ6457QWwAE00eU67T311krWRA6pn8MN04C+lJaCRroQZKYJ5pa30E\nx/7bQuo7FFMvvo7rv3Z2M+VqZxtasbQX8AQKyLPkFMSmmX4Ox8RsyawAznui\nOpl3B79RZ2V5B6AF2nDx2e2+/d9kucVGgVmFh2h6FBDpTlmQGQQ8ZRoLKARO\nMaqG3jvvIvVjS0qT2KUzrFTgY48B97JNA8lf1Id77zouOHZ2JvpR9H6dfBoi\nfbU1LWAkAxPE9+u+687seq+hpVQaHaZNbCPuHF3HFfWdhhiiBu/wH97nm817\nAl0OOllZKiz/76oN2Sof9Ujqeb70LgYIh1V1KgK0uNiJsTjzvDIQlrAXV15D\nmg8n7dUO3eQja6nXcAW9diyr5AbRP74V8MW+AKYGKOIiQE+SVhxr/xSNd3vw\nRdTy\r\n=+Rnr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCR5UvrcJIushpDsOorxGCiKALJd+ZNdukTk1kkGQeneQIhAJ0LY1i5mafiXezl7QD980im82z9JadplrWuEjwC14ML"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.2be191ed.0_1614808336622_0.8628950306418066"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.6dc7b06f.0":{"name":"@material/mwc-list","version":"0.21.0-canary.6dc7b06f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.c7d98fcde.0","@material/dom":"=11.0.0-canary.c7d98fcde.0","@material/list":"=11.0.0-canary.c7d98fcde.0","@material/mwc-base":"0.21.0-canary.6dc7b06f.0","@material/mwc-checkbox":"0.21.0-canary.6dc7b06f.0","@material/mwc-radio":"0.21.0-canary.6dc7b06f.0","@material/mwc-ripple":"0.21.0-canary.6dc7b06f.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.c7d98fcde.0","@material/feature-targeting":"=11.0.0-canary.c7d98fcde.0","@material/mwc-icon":"0.21.0-canary.6dc7b06f.0","@material/mwc-menu":"0.21.0-canary.6dc7b06f.0","@material/ripple":"=11.0.0-canary.c7d98fcde.0","@material/rtl":"=11.0.0-canary.c7d98fcde.0","@material/theme":"=11.0.0-canary.c7d98fcde.0","@material/typography":"=11.0.0-canary.c7d98fcde.0"},"publishConfig":{"access":"public"},"gitHead":"9a8a072daac91e9fc841e2f6cacc0fb753ada76a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9a8a072daac91e9fc841e2f6cacc0fb753ada76a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.6dc7b06f.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-3LD6lUQUN+AJZZQsPSUwkjXTRcjNxNlHK9s3KPyu3sivXnvjs1kEsmq01jB4l2cGuZ68tgS94BiW4K39D97W+A==","shasum":"c2f1a6a640b462e5c858c639924c63092cfb3809","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.6dc7b06f.0.tgz","fileCount":45,"unpackedSize":246899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQXnjCRA9TVsSAnZWagAAtmQP/3YHKrPf9loMvcfpNjtw\nofnQhtVgXXszP4l4G9dGFCKJkX0NuzaByu1bgWwJWJs4wUpzLbm9+Q+qpiPd\n/jnSl40hRN/Llt6qM/ANFRvfoNWvqmT8lp4UZ4NMKIc2GaxNODBsiL+I9KQ8\nuC26qfTwkYn3fbxdwY2k1cuPN+puQE8cOIhWUqBQiySJX4FFY59fOwK0qHCE\nGCKn6O5ZepUJhCWWSntw2A+Mzpj/fz1jBfdaXfgcZADLa74idvhxqfx96LR+\nbossd3RxKyoILBMoX1exw/uLjEnjzhql7zxT6mgvpbEEvIKmLZPlkY5ztBbc\nDTkKMJtGA7BiJnnTqVrM6HR7w4GAOCh7sk2tMkGUKqAiuFAumUhl8sc3XtGe\nER8DW+ApjvsD7sgmKyWn1v+t0Xqa52w8uH6eUMkWjPThBt+ul22j5COYN7it\ny+0Tf4X75o1HFJCcwCUgV/DpVnTIrWoQw41MJrSQ4txmwe+MPfqmr4oRy7Ms\n3XtjGhoKkcjNHSx/5+TQt4sq+uTZ11WBYfhE35HFFmABMLg2DYjDPzvo0te6\ncOKoA62qtT5k9a9zFfYIK4Y37wVc23XlPL4d9Dh3D7SvV3+nkCh96cLAq080\nBKjL8ZdEhK52REqJs+61B9ZTJGjeLd9LocM9m3MEpHhyjASt7EyYGfGGa6UV\nLcqE\r\n=Cv3C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDsVsP9b03NTT65TuZQNxqtkvNkPYydN1n21zzlpeHAAAiEAhJA6SwWjc5Wf6HJWTi3M8T88jKYLLw27oEfismT6uOY="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.6dc7b06f.0_1614903778610_0.24516878526394992"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.24fe7ba6.0":{"name":"@material/mwc-list","version":"0.21.0-canary.24fe7ba6.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.c7d98fcde.0","@material/dom":"=11.0.0-canary.c7d98fcde.0","@material/list":"=11.0.0-canary.c7d98fcde.0","@material/mwc-base":"0.21.0-canary.24fe7ba6.0","@material/mwc-checkbox":"0.21.0-canary.24fe7ba6.0","@material/mwc-radio":"0.21.0-canary.24fe7ba6.0","@material/mwc-ripple":"0.21.0-canary.24fe7ba6.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.c7d98fcde.0","@material/feature-targeting":"=11.0.0-canary.c7d98fcde.0","@material/mwc-icon":"0.21.0-canary.24fe7ba6.0","@material/mwc-menu":"0.21.0-canary.24fe7ba6.0","@material/ripple":"=11.0.0-canary.c7d98fcde.0","@material/rtl":"=11.0.0-canary.c7d98fcde.0","@material/theme":"=11.0.0-canary.c7d98fcde.0","@material/typography":"=11.0.0-canary.c7d98fcde.0"},"publishConfig":{"access":"public"},"gitHead":"d87a6c320af38bd078f91bc9ea457c0e21cea9cd","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d87a6c320af38bd078f91bc9ea457c0e21cea9cd/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.24fe7ba6.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-TSmZiRNxPX7QzgMKoYdk8/RtZzeWRNow3GuVLWdU2wPdnckjNCd+LqxjCsudkB+BZk//AW32q4F6VO4OMa+jWw==","shasum":"e5c43286db11192067c85637f9e968ca9a193f7c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.24fe7ba6.0.tgz","fileCount":45,"unpackedSize":246899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQmoOCRA9TVsSAnZWagAAYsEP/iZ70tQS/C2JqRX3fv1B\npqp2eDIplxFAwsXLPMd04dxlDVHNLWMqENoMSfZsZUDy3Jk2dYu5y6vl21SI\n26BED+momKD6IgSxoHVvobrZiSD37pa07b2UAkb4SL15GbxwrCt1KjpORSIj\nJCp+Ym7knL6NCjGUZ/bDYgajxrjwEZGY6l6R98ekLZTKAoW7k6eKyU7Iam1Q\nfx6NbHSSI6c6+tsBYyj1+vrtBaB96Pqd+NFbfC7+8Fm3hQQhYikD32TlU+Sj\nCMKU6L6U2knROPsr6JxbhfWyaOy988TqxCTCXb6FIafFDReE7v5710jaB9TH\nffhJJP15Wy4St9m/s9PUDSOd5yeTxkcKysYEdXfTwZD66p/1BobF+Dx/Vp1Z\n4YSsV+JS5upnJh/e7wuWmmZCvqRKexPrwwEisydV3c3lIzKm+FqlcWfeM12V\no7KUmGE7VNRduUI9TZJ5Bcxgc1x/gQK/24q+buRa9LWUmKoowtfaCEPh3lI0\nWV244kM53kGQPmoni/CmDc+A0AU2vH0CT+ltvPI3IeHbgyR5UsHaC4LSYW6X\nNteErDS3ahaL9oDgfnqS3ECN67Kebbl/AKi7QFYsmohbnUwetr42Ry6pk9Q/\n1a8+2EP1sARkc6yB9L/e7p0YLGnZ78v+RospzNNWO1oSeieq/KLgXDvJTcGh\n2tdn\r\n=ZXyo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7ShObsqfQdqp6lQWbK/LHCso/JeBQYlPEzAk5k5ptwAIhAOlyX3UYwSPjKWbRGMrM2+AdF8chMjfkuojo3+M5NTz3"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.24fe7ba6.0_1614965261706_0.072287430658593"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.12c477d1.0":{"name":"@material/mwc-list","version":"0.21.0-canary.12c477d1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.c7d98fcde.0","@material/dom":"=11.0.0-canary.c7d98fcde.0","@material/list":"=11.0.0-canary.c7d98fcde.0","@material/mwc-base":"0.21.0-canary.12c477d1.0","@material/mwc-checkbox":"0.21.0-canary.12c477d1.0","@material/mwc-radio":"0.21.0-canary.12c477d1.0","@material/mwc-ripple":"0.21.0-canary.12c477d1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.c7d98fcde.0","@material/feature-targeting":"=11.0.0-canary.c7d98fcde.0","@material/mwc-icon":"0.21.0-canary.12c477d1.0","@material/mwc-menu":"0.21.0-canary.12c477d1.0","@material/ripple":"=11.0.0-canary.c7d98fcde.0","@material/rtl":"=11.0.0-canary.c7d98fcde.0","@material/theme":"=11.0.0-canary.c7d98fcde.0","@material/typography":"=11.0.0-canary.c7d98fcde.0"},"publishConfig":{"access":"public"},"gitHead":"ea7731f325b77f7ec93ac77e442625ecf14e7f25","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ea7731f325b77f7ec93ac77e442625ecf14e7f25/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.12c477d1.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-G3zYsqtKZNfhRzFY73zYJWKT22iZYhiPhJOzBmgHobO/YG+VG64NXkNzj7zphxj0DAw9rXB3QyWo5cIQy83LlA==","shasum":"240e28343100f3aa4e638a627ad84edcd4e8d816","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.12c477d1.0.tgz","fileCount":45,"unpackedSize":246899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRqQGCRA9TVsSAnZWagAAXooP/RVfKA6j+QHIBkY9mRyT\n2U8wLVbXPCYEraNQJf7aBacsSI3ghus8GXTW1Q17ZIuHM1RVISStSSu6gE5p\nSPXOC1FSdPUqarus1ps8MQteqdWxWcaJjAjsxJ+st3JBkIoHxsyhuGOb87GQ\n1ACdu/jzwG0gPa8g2IPAvYmMvCRaBm2f7xodsWusiAFSJuLWVLooSLl0YB/H\ncJL5vkouGjPne8XFVh3/P2GDPvAGAa0xIij1q1CylfbgQy2R05FbvMdXrmze\nrW+wKJ614mUQnmzaJr2ywKL60OD8Wb7E1550HxCnSAzto9rh2/3+eZKU2sgo\nnF0yAQwvuWx8Ft5ee6eubmteqwo8q5/60zsIp9o2Pxa6acD9jiAN28jJRgFR\nWUm6n2H/DdXZBCnEKFrpBKFWFFtEA5wb+5ZoMPJ7W+YLMHEoxXOCkW9V3qMw\ncrY4hdMKoH8CHvftxQ4kn5pH4ktam6VtJs2+Iyp4+laOPQby2tXcQYoivkmK\n+YOe0WLhpFic3LE8XFFx6M0BdtzjIR5Yr9+vF3AIBUyknmeaaty8STr/Fh81\nBn3rNMOt1gRUEwiZ9ZYT1njctVq+f+szxlU5laLby1Cu1w+Bco9ji/zwdzAP\n0ZkNn1KKd2/7v4X+Rj085JUnZHv6w9qc+islFQ7aRAg2CbZSA7nHbWVOCVOC\nLKz6\r\n=aej1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCzDGwHZlCu2ppYW9RfD2i5gNh/Vjv0g0Wkm24Q6TV6gwIhAKe4ugjFjHjo+GuVEOPjcYpdQM+6b6VX3uzlhKjX8Pgd"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.12c477d1.0_1615242246101_0.4548535631149164"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.4c38f801.0":{"name":"@material/mwc-list","version":"0.21.0-canary.4c38f801.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.c7d98fcde.0","@material/dom":"=11.0.0-canary.c7d98fcde.0","@material/list":"=11.0.0-canary.c7d98fcde.0","@material/mwc-base":"0.21.0-canary.4c38f801.0","@material/mwc-checkbox":"0.21.0-canary.4c38f801.0","@material/mwc-radio":"0.21.0-canary.4c38f801.0","@material/mwc-ripple":"0.21.0-canary.4c38f801.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.c7d98fcde.0","@material/feature-targeting":"=11.0.0-canary.c7d98fcde.0","@material/mwc-icon":"0.21.0-canary.4c38f801.0","@material/mwc-menu":"0.21.0-canary.4c38f801.0","@material/ripple":"=11.0.0-canary.c7d98fcde.0","@material/rtl":"=11.0.0-canary.c7d98fcde.0","@material/theme":"=11.0.0-canary.c7d98fcde.0","@material/typography":"=11.0.0-canary.c7d98fcde.0"},"publishConfig":{"access":"public"},"gitHead":"2f19e904d6306b3a12d41b0158ca0c3fc34362db","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2f19e904d6306b3a12d41b0158ca0c3fc34362db/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.4c38f801.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-4nmlIIWArLPuiMuQHO5vSuv1iCC9kPc3HHrJWDygzwf+o4bSDnjgMYe07QxcLIhuO4UqNMN6Xi+xX3hZ242pTQ==","shasum":"e710c7cc49c27cf64b8db2b4ceb4f9b7a11ec4d8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.4c38f801.0.tgz","fileCount":45,"unpackedSize":246899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgRrJfCRA9TVsSAnZWagAAe+IP+QBLlPWwemk9rXjdNITp\nI/6ZsnQW7h1VHQH0oHH/FGZuNZ6bXIOabJqli6yvlBA1+r9wtFx1hF2N6Ddo\nJSl6G9F5HQEl521KtejJvkiPjZEUxRBw3ajbWouEGD+87mh425GdJPi/6VEB\n5am0T7x6GF8hWVrDj61PbaZQd0n49jhmIf3DDiIenXfrdbsOtpCXuhMznAxF\n7aomqy5PctvhxFDz5odbouTvU+K7+ITWnKtk/K7mBicC7pb7zin1VFaQtaFm\nDxiJSjuO9cUkK92q5wplnA38g81ryytmNkNmnOges72SLA90rIRhoSuHnJwy\nQxRiGGdFy/flPTlHERyufhqctEyEX7b6m4yzDJzZ8qJ3H10aLe2U2ASkod4Q\nDQY7nPdrJw4ws4sk6pUmPLl9BoPa62QWIpEpTl04bj+Xv3/M2GGLvdP9HoM9\nmIl36qa4/tTpRFY+rxopPl86akKOTdoJ5OCr/2Gi4xsxUTRI7g2XhII0Ij+W\nwELJD8etAlM+E/9HJs6OC4m1RNGnKv/hNpB5ywI03cOc9ER3rkwnZ9UxlTW+\nEHtFltclrPXT1EayXrE20AMWaXLH5qzWT/lIMIEOMMUQrzl6Yg96leZfcTeL\niYwFtEfFP+KSGWZk7Pn/6CK43oIie2sGgI1/E5sxCf/7v3s/YL6eGVZywwu7\naKxv\r\n=ElY+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnNb1ZYQOIJKrMMro9CzVvmdZEIYTnT8sHcWsAcw02JAIhAMiTK1FYAqfetGkc1UbQvPBkiVcVytfxg/3Tl8Vuzrfp"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.4c38f801.0_1615245918996_0.07177953328675679"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.8795b83f.0":{"name":"@material/mwc-list","version":"0.21.0-canary.8795b83f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.c7d98fcde.0","@material/dom":"=11.0.0-canary.c7d98fcde.0","@material/list":"=11.0.0-canary.c7d98fcde.0","@material/mwc-base":"0.21.0-canary.8795b83f.0","@material/mwc-checkbox":"0.21.0-canary.8795b83f.0","@material/mwc-radio":"0.21.0-canary.8795b83f.0","@material/mwc-ripple":"0.21.0-canary.8795b83f.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.c7d98fcde.0","@material/feature-targeting":"=11.0.0-canary.c7d98fcde.0","@material/mwc-icon":"0.21.0-canary.8795b83f.0","@material/mwc-menu":"0.21.0-canary.8795b83f.0","@material/ripple":"=11.0.0-canary.c7d98fcde.0","@material/rtl":"=11.0.0-canary.c7d98fcde.0","@material/theme":"=11.0.0-canary.c7d98fcde.0","@material/typography":"=11.0.0-canary.c7d98fcde.0"},"publishConfig":{"access":"public"},"gitHead":"e3e75af3d23a6f47c66e86d2168ac672364726c5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3e75af3d23a6f47c66e86d2168ac672364726c5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.8795b83f.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-lx2NRK7EW/g4HCYc9ZHCX9aWIJVaYjUzW7v+PjDLcZfhOIZTu80qZV9Zp5pg3/FMY48UAWru4VLiYaFhl1MJ+g==","shasum":"1f132d291a07669f968937f955c51cba8861786e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.8795b83f.0.tgz","fileCount":45,"unpackedSize":246899,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgR741CRA9TVsSAnZWagAApHcQAJsyBGdjLhV58tM0volz\nq3r/4ycueU1iqdBuf7VJ4rS5otom2UYBiywZKbHUHUg46oZFlK61BTZ69r+R\nrmrzrn4xLU+x+UPyzCfhr3oZ/PBQmbDZW9nK9/xT8zM0mVi6wVK4ZZOLLcwh\nYNMyjR0HxgoeD8/N4kSghkkNduX+nEYNN8cCZxWo64LVWoo40AVeNPQgKtGJ\neazB5fnT/x+QyoXFZDaeFh595W2wQItEqKa3Nzhi6FX/00UMbJ/c8eC2Uxsk\niJxT/Xb0tNipPI808is46f/89CroxDgLWxzWbIK3vGoheIeBUFjCqAIwUreK\nfvz2M16AxNWvZiGYWhDYU0HG+RMSiBhbWtLAy55x3VTZYsOpGfNIUbwgPCBQ\nj9mSs/XWxqK1E2MlZrWcQ5WVgEKu9hn9hgI4nFjM890NKun/A7ZS+G0MjH5X\nl7j4CwknzbKJNVZ/UCHz77JWEuDnKMe339rUffPYisczwRej7Kb8MO4osgxS\nkJsDXjAUTiXeJECCnGrWHBIVJeaOY20ONOJZdNPw/m2vKGCcHIbtV23hXhUC\nyNZBF8/346YV7lDMPmMBhJlH6h58XRDZFTMcV+EBJOZQD506xS2ri3/399q3\njUC25DXFyu1AHes7KK6bbdcDq7CYadvstKZOrObdW0R5eUekjiS7e4je2GBn\nGedY\r\n=0BCI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4f3t2fWnGlYYZbNWaHf0Mxe/VQP09LJ8ooeDTbhquIgIgAY9eYu+oaCvMlar+ZNGQHTsFVvawNB1ABvHmKySWHOw="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.8795b83f.0_1615314484627_0.2513698468118746"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.12b84cb7.0":{"name":"@material/mwc-list","version":"0.21.0-canary.12b84cb7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.7522dcaca.0","@material/dom":"=11.0.0-canary.7522dcaca.0","@material/list":"=11.0.0-canary.7522dcaca.0","@material/mwc-base":"0.21.0-canary.12b84cb7.0","@material/mwc-checkbox":"0.21.0-canary.12b84cb7.0","@material/mwc-radio":"0.21.0-canary.12b84cb7.0","@material/mwc-ripple":"0.21.0-canary.12b84cb7.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.7522dcaca.0","@material/feature-targeting":"=11.0.0-canary.7522dcaca.0","@material/mwc-icon":"0.21.0-canary.12b84cb7.0","@material/mwc-menu":"0.21.0-canary.12b84cb7.0","@material/ripple":"=11.0.0-canary.7522dcaca.0","@material/rtl":"=11.0.0-canary.7522dcaca.0","@material/theme":"=11.0.0-canary.7522dcaca.0","@material/typography":"=11.0.0-canary.7522dcaca.0"},"publishConfig":{"access":"public"},"gitHead":"1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f49d8bf5098f7acbc51aaf3dbc6880cbd46a2e8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.12b84cb7.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-/vM/gRnXj8Gda3K6N354cTKR3tTIY9vN/eZ0xssHMqC79a56Hiw3g8LSnAFgZBDEXyJcJvCByZpIYpk2dPpcEw==","shasum":"f843de357e79fddbfa7a181112d8e91784904663","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.12b84cb7.0.tgz","fileCount":45,"unpackedSize":247059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSBXLCRA9TVsSAnZWagAAV9wQAIw6BTGiXlfKSvIMd/HN\nNgz2JZUUj1TCatiuPEckkghO5mS8c/H/BcFuQRItW54t+Qq4PfhI6PEjOLu9\njd91ATSogUpd80perCSbNthIsD6lezGqN3VxDQce73MHXENqgKqRI+XzM1Hg\nR5+cgmuY3ch4KtwuGc7Jtyosk2zLIbteT5oP2g6l7yH+DH/r1iwQSNbfqkxF\n9AVmRM6tCc8RbAMwcpthXLwQJXvjP1c1AdNtWfyF7zIIdxyHX2Eos3Kj5z9k\nCoZKLAD/f/MTlD01AfJoLyNEZUirNyZe6oGp1DYEKwIfhjxaHAeeQ0ZsxYNz\ndQIHs7lteVcVH5sySWNnTcphSX6hye2hM6KC+4YFJnv5lEa9tzAsM0UuIOBd\nQiXUeQCQjWrv5yTFoqqxTLbP2dYc0ZFdpaxXt48eqcohzP3Rowp5UiSOEPZd\nYfBYuJefTx41OkIYuYC0ZcoRfZHF8H0zrf+bJC+0oBHNZMxHc97mJeEsOqxb\nfxFF5zfPg/CMhpI661NPlytal3pOd7RbBhtZyHdJKOfGbNWzYHg7zAh2x5hh\nMbrv/In9srMaXS32JWVj/KorRj5yufOg8c5NdZb6/LNJrMy8cWA2ATxE7EKj\nlhXnENOgpYux0dNlcWSOcy/bYJJP5ms5+PwpGDcIICWPZysqrHkSYMwwOoss\nW0nQ\r\n=JxxQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC3I7MG+PwhnbML1i8mCJjFOtggbbq33fBZaXW1+k0MGAIgUXKZohGUOc124/L5gZO8aSsFA9k6hQCUmt0RbXs/p2E="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.12b84cb7.0_1615336907336_0.1835682561179841"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.6ac6784b.0":{"name":"@material/mwc-list","version":"0.21.0-canary.6ac6784b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.7522dcaca.0","@material/dom":"=11.0.0-canary.7522dcaca.0","@material/list":"=11.0.0-canary.7522dcaca.0","@material/mwc-base":"0.21.0-canary.6ac6784b.0","@material/mwc-checkbox":"0.21.0-canary.6ac6784b.0","@material/mwc-radio":"0.21.0-canary.6ac6784b.0","@material/mwc-ripple":"0.21.0-canary.6ac6784b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.7522dcaca.0","@material/feature-targeting":"=11.0.0-canary.7522dcaca.0","@material/mwc-icon":"0.21.0-canary.6ac6784b.0","@material/mwc-menu":"0.21.0-canary.6ac6784b.0","@material/ripple":"=11.0.0-canary.7522dcaca.0","@material/rtl":"=11.0.0-canary.7522dcaca.0","@material/theme":"=11.0.0-canary.7522dcaca.0","@material/typography":"=11.0.0-canary.7522dcaca.0"},"publishConfig":{"access":"public"},"gitHead":"c60d8f8df8e8260f94f9e15fccf93afc356b0634","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c60d8f8df8e8260f94f9e15fccf93afc356b0634/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.6ac6784b.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-T/cNHcyplD36OZfs1HJvrwkDTJTffnBFfVBKqbLXOLhaRPz5Gm+nhEtvLzRql7+OjpOtuZmOZuiRqzo2vxJWAQ==","shasum":"14d0ffc5e3c13870f3c3745d35071c5d2434002f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.6ac6784b.0.tgz","fileCount":45,"unpackedSize":247059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSBg7CRA9TVsSAnZWagAA7VoP/03deWPYF8ij4Mf2Krv8\nrRsL0QU7IzOmnhYDWoiiZIfT6corbqp7SPplQYedSsQ1NS3V9UJRekbLDsHT\nw1xxmXsMX2vIKEPdfv6cjszffHaU89041Liac2HC9LYzObT3Pw23apWoGXs+\nZX0MnqebASEaG3Rm34V0voDaz3f3uM+AfbJCcxl3/GIgZllWigaRsq4/Avp8\nxY0KOoDjsYPMKnxPsAR/IKyn8ZlLpVfoggY6bLz7y6lLEZZfYS/QQz8ltK/0\n7NbWsV3nVBLJpV6DpvScCUIAY2rO1GimnndA9hNfJ87IlmUtZjgDIoBZn6po\nr3KDUfRMI6bZYizfQx2axiQWo9FEOp19Ng/Db/Djq0o0ztuU6JroSgZRb0oW\nDUWApo2aR7t29LMP0QQ9Y9yr1F1k+Li68uYZ+lrk5Rs9dxjINaf+bEmvCvFV\n6OHfifjVnBsc6+khaR+7yI6rScMKW3XsOS5DSC0H0I0SxZjQ2fkKVu8kFCSL\nL7PvzKOk9M+kFLEupdc2K+QPC5YsDmt5vXOJgUF2vp42cy9uzxh7pYfRaLFH\n2LIgUO5tnXPiknIyCOoG81vralY5MHNZ6kHaqt0+63y/6orrxP+UD2KqRfnW\n7yv+4qVl6zPPC/Tu8ACMaal140rNzdpIvaz2CBU1c0O0xxMIpswz9QRa+5dt\nHLgi\r\n=Lv/J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBIq3JkBMz30RUcRjET83+qWLehZxr4RGux8oY9uBM92AiEAqp9KyLbGInPEJSaGwi2RJvVV+BC7QrC1Xpi+fG37Pbs="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.6ac6784b.0_1615337531392_0.9170979076458423"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.b6d92934.0":{"name":"@material/mwc-list","version":"0.21.0-canary.b6d92934.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.59010b6dc.0","@material/dom":"=11.0.0-canary.59010b6dc.0","@material/list":"=11.0.0-canary.59010b6dc.0","@material/mwc-base":"0.21.0-canary.b6d92934.0","@material/mwc-checkbox":"0.21.0-canary.b6d92934.0","@material/mwc-radio":"0.21.0-canary.b6d92934.0","@material/mwc-ripple":"0.21.0-canary.b6d92934.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.59010b6dc.0","@material/feature-targeting":"=11.0.0-canary.59010b6dc.0","@material/mwc-icon":"0.21.0-canary.b6d92934.0","@material/mwc-menu":"0.21.0-canary.b6d92934.0","@material/ripple":"=11.0.0-canary.59010b6dc.0","@material/rtl":"=11.0.0-canary.59010b6dc.0","@material/theme":"=11.0.0-canary.59010b6dc.0","@material/typography":"=11.0.0-canary.59010b6dc.0"},"publishConfig":{"access":"public"},"gitHead":"82c48b7f335ed9103a3bbcd062d3163b1eb661a1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/82c48b7f335ed9103a3bbcd062d3163b1eb661a1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.b6d92934.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-QG+p1ejRhPbHSUtVQdJcO5AYjPucCuvFCRCHGXoyCSv94M7z8PIvPvMASMsqb36nEZJOgejjtCuo9u+a7H5OnA==","shasum":"121d5bfa1f124da79d601f6dd0e0e08fc6c083d0","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.b6d92934.0.tgz","fileCount":45,"unpackedSize":247059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSUG+CRA9TVsSAnZWagAAa24P/j3Ugk2xjm0TmQJ4GnND\n0qVMuwt7vI1pvBL7rKJWSCWgl/3ZdVcDz1MJTg+Ala+ZrtWbZxvvSSPEFu1z\nYluRekVCm8hkH6nEo8Tt0erTwrdweocuD6/bv+ebb8DuWsL38EZ5vo0uMNUb\nBZMk9dro6vknZ7aKtZ4zPO+vP0vfQFo0YvQEa7Ubd3Gq/uT747B6Ck9/oz6y\nJb28tmNgErrbqxgXJQ0gk/4LTbsQPfGYIv6sYeLf5xt6E/JsXs6HA5Xdz1VQ\n2Rw5TEThFQMIPCh/pjuzC9c/NaTf/sbjtXfaMeLCph1qGY5fzW0S2Fw9K7Hb\nDtCIKK9aicdM4TqyHqbDUY80oNp1U30fhLG4Lm8WMe6d9O9bwC5I7+p6WhB8\nb34yPSav+5guufhj1pJt440bpuQdZQAmyPF1wTP315KQptfdMjzJ5DGXE+rj\ndjKAAaft2RIj/ignrIV5aU5XQ9q+UF7xK2z2XL6zpejTY61LGdU//8S9Xgr7\nfHypikSm+jGehBt2tVRxYeNpO+RSGa06joHQizMF8m3s4vuXsB+S3i0FNtq8\nLTUSgLOsu2x04GgKNH1EUJ1PIcdg9WCxCwVoSYF+8Eys4BJf8qe2YbiC8SxB\nVekJlIZzZSUajcVlLF6jB+9MqGRD16tLSRw8obnHhkAbNOFfTZMu7KnNPMLx\nmIfI\r\n=nXgA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHBtWC14C2f8doPDtdT2TsGj8UXopsOHhbjcKfRtWfEzAiEA/veA93mpCiMBm+vDIP3x5Gv6fkzAwpX1A3lVhgBjkUw="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.b6d92934.0_1615413693562_0.5102408782363976"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.99a55b9e.0":{"name":"@material/mwc-list","version":"0.21.0-canary.99a55b9e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.59010b6dc.0","@material/dom":"=11.0.0-canary.59010b6dc.0","@material/list":"=11.0.0-canary.59010b6dc.0","@material/mwc-base":"0.21.0-canary.99a55b9e.0","@material/mwc-checkbox":"0.21.0-canary.99a55b9e.0","@material/mwc-radio":"0.21.0-canary.99a55b9e.0","@material/mwc-ripple":"0.21.0-canary.99a55b9e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.59010b6dc.0","@material/feature-targeting":"=11.0.0-canary.59010b6dc.0","@material/mwc-icon":"0.21.0-canary.99a55b9e.0","@material/mwc-menu":"0.21.0-canary.99a55b9e.0","@material/ripple":"=11.0.0-canary.59010b6dc.0","@material/rtl":"=11.0.0-canary.59010b6dc.0","@material/theme":"=11.0.0-canary.59010b6dc.0","@material/typography":"=11.0.0-canary.59010b6dc.0"},"publishConfig":{"access":"public"},"gitHead":"8b0d740e8ff12f180cf11caa9a264f3dda6542f7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8b0d740e8ff12f180cf11caa9a264f3dda6542f7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.99a55b9e.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-zYBKU8UOuWf55++nvUWiiLK65HU1uBnZQO8xSqb+Ad/J5gTd9b4m6mmSyDJo2+HPOb5tXEAnUqfgnrnrNIVssA==","shasum":"625620deea7d5dd77d52608113f8e5165cd35969","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.99a55b9e.0.tgz","fileCount":45,"unpackedSize":247059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSU2mCRA9TVsSAnZWagAAPSsP/AvbZXUGwQRmeC6Zn5sK\nJ0jVFYYbOccNObDLmivSGkxnY0DEFaHr5jrIwOzO9ICwxGzZisMj2wGvBA4u\nRMEhjkAJqqGpkdOyH7+U1wu6vBItZZdr+WJr0TAAucUDYtCicwHfjRBNs7vZ\nBkiTPzbDyOepkkJhEAXKI6DZhlWqIsoZXmQBug9KXOtbBcMJHxo44C2eKMfW\nOKmgvId7ySdIyUcSJmpVWgLsjEXFqRWL3FZJWkDG/WJXh307kOEc0t43ITE0\n0n081h1knEVtWR7/2j8N7KW560JRCSZOMHf1xv4nySuAqPR7ZbELnaaM7/A/\nORzERAhtvgr5iyTUkxaClZYjgPaQs2tixUgFnL1RK3R+JM5KkfOnRs3y/jgA\nkMxlvdvLJgGvT3z8yzQKpoCPv0aTKHXIlhEJEhR80wXSGVpTVMl7/TPx3+or\nE7pRwH6zTBa1Q4qedfz6WrH8shTUuzkhFyag326Wgp6rrAbLKm5A4LoDWd4l\nk0WFlizOnih+x2/+pH6qCicIOr1NgyH2QxFsWc1gN0UOKOUKgo0vVlpdTx+y\nwX3jGLzsE0EvPOG2s8sTdD5g2RkEnModMzdnOJoY4fBh5wWSOis+bR77pmnw\nhcWyIeEEKB6YCbbZgAYQeBakTChF8ZFY7MHbO9MrhPgPwEs0RcVu06zsXUyQ\nYhuR\r\n=OsUm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCahaIsFBIB+XE0h/YSpNoe22ZogAnH2mXWRoYs0GgCvAIhALOrZofRnUaTwAmQ3mRLJLlic3O21/HpXx5n8AozA3DT"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.99a55b9e.0_1615416741752_0.6512206307968753"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.bb14efb7.0":{"name":"@material/mwc-list","version":"0.21.0-canary.bb14efb7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.59010b6dc.0","@material/dom":"=11.0.0-canary.59010b6dc.0","@material/list":"=11.0.0-canary.59010b6dc.0","@material/mwc-base":"0.21.0-canary.bb14efb7.0","@material/mwc-checkbox":"0.21.0-canary.bb14efb7.0","@material/mwc-radio":"0.21.0-canary.bb14efb7.0","@material/mwc-ripple":"0.21.0-canary.bb14efb7.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.59010b6dc.0","@material/feature-targeting":"=11.0.0-canary.59010b6dc.0","@material/mwc-icon":"0.21.0-canary.bb14efb7.0","@material/mwc-menu":"0.21.0-canary.bb14efb7.0","@material/ripple":"=11.0.0-canary.59010b6dc.0","@material/rtl":"=11.0.0-canary.59010b6dc.0","@material/theme":"=11.0.0-canary.59010b6dc.0","@material/typography":"=11.0.0-canary.59010b6dc.0"},"publishConfig":{"access":"public"},"gitHead":"00644005f58173e15c7e271bc9c226535d1bbbc7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/00644005f58173e15c7e271bc9c226535d1bbbc7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.bb14efb7.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-SfyF/hWY+/ANj490zaxHfwbrzfUlPZ9iVadXBY3L9ZRRajzWscEfI+XWzgndsGGjhdrYeq+Kd8PfClPgGBuKcg==","shasum":"e6b1240739ce25aa529b71e0af35af2d5e404ab5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.bb14efb7.0.tgz","fileCount":45,"unpackedSize":247059,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSVhOCRA9TVsSAnZWagAA7OgP/1lxc93vhOhsh1TN0VJk\nks8MOiT4e5g2NMDRFG1hPAYGzKeF1azSvhbMyYB2noejYQoSIWtVsuAOHB77\n4VMLPu6ZMDl19/4XzBsLO7vVTgAkwnqeBS1cxQZOBfDcSMxLc/jOD7Tb6J4N\nX2K9iGMWmXgipvqvH5xfs7O7eHdE0P66RbRjsg/ULna1KH+498sPViF94MUG\nL0esOEBch7iGkxHjFNz4JrWJLeYz7phrCeHScfj6EHiNmzsCGKsGI2bxSeqe\nSaza2NxeXOMkl8w9MukB8Gx2lPakBr97bSJXCZ8hzCiuWud8qjlfT4dZCt6T\nAIqx/rPvE0HEcp8IRv59N4gOlgFEU6qxYcm1nTpWDQebdNkaiqB3BFLQgSE7\n3U6pH7s4uGbu+QgjONSe29stP1/LyaXhvagKiBjBD4l9otYtrYc667P9wKmH\nGaGUF+zWoMcX2xDMWpx0XxM9x926yucqmjf8c4wv/bLsAzS83dKk5zZm752E\nyNGwxLz5X6J0CKPLwMSIehtojlsvqFuY9OUQzpYY48H+5p9yT2N4KHVdJZzq\nHuhSbz/Ayz2KRN3Xv0uuxZiR5OjBmwQBJpKoayGJXWvhFa4reiQLGkqihTWH\n0FxfW2VcqCAPsTEHTFswRp77C7gTOrHc+2nj97WB1Q7PKpdbJIRzVwv8YjnF\nFLny\r\n=Uh+S\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCdacg+a67txNAaJbl48ug3n4O+dgNFvnTj1SNwoJWg2AIhANeaDt65C9zRcZ1R0AZgfbhV1qlhwoxEd56hUok4E1Iq"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.bb14efb7.0_1615419469913_0.038109596662655676"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.9ecf3bdd.0":{"name":"@material/mwc-list","version":"0.21.0-canary.9ecf3bdd.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.59010b6dc.0","@material/dom":"=11.0.0-canary.59010b6dc.0","@material/list":"=11.0.0-canary.59010b6dc.0","@material/mwc-base":"0.21.0-canary.9ecf3bdd.0","@material/mwc-checkbox":"0.21.0-canary.9ecf3bdd.0","@material/mwc-radio":"0.21.0-canary.9ecf3bdd.0","@material/mwc-ripple":"0.21.0-canary.9ecf3bdd.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.59010b6dc.0","@material/feature-targeting":"=11.0.0-canary.59010b6dc.0","@material/mwc-icon":"0.21.0-canary.9ecf3bdd.0","@material/mwc-menu":"0.21.0-canary.9ecf3bdd.0","@material/ripple":"=11.0.0-canary.59010b6dc.0","@material/rtl":"=11.0.0-canary.59010b6dc.0","@material/theme":"=11.0.0-canary.59010b6dc.0","@material/typography":"=11.0.0-canary.59010b6dc.0"},"publishConfig":{"access":"public"},"gitHead":"536269b5f421223a32dd73271ba878cee3e04ec0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/536269b5f421223a32dd73271ba878cee3e04ec0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.9ecf3bdd.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-AuNSrZBYDE157WIfHOwqDCrKqtTG/8Vq0iu+Qbgwzjp7NXvavdtBl2jXa2CQaeY3Riia63yXb0P7S/hJNWrJdA==","shasum":"1f3bdd0cca8c4b84f359293926c8f7b41814819d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.9ecf3bdd.0.tgz","fileCount":45,"unpackedSize":247894,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSWMxCRA9TVsSAnZWagAAZnQQAIEhjQREMHHvrsMQdsY9\nen6Lvg9FgxGaP+afOirpVbsWfk7x1hcYcISEceD+s6Z4HYqpg6drzgsRfyaW\nxkRVFfNeBsIdQ3jctBokhS6dpMBQwCdEVeCseUaWkU1NZJ0QFqnxfnS0EgmX\nj7z1BeLW8au6DTUsjvFERhoOPGAEOytqf1JRcxGv+SLp/R1FVbHq7StCpau8\nDGzCIyJhLnBs3iwJAhv9uPHKa6rDHmYyVq7txXtogX+YHvkLfOJoCOjkJFY1\nahntOL8BjBExRN6n1KKee1UdWART4QRHjQobCPE/s8I048FjBftSmMiXbHYb\noDkJeN2pVxr6ZbG/X6VXoFF6gkfNdBYmlqVAhdJC0jhoJ8cOUYbAOxwF/II5\nlCQt6y1j0IeSwCh7JiCV2ASpIEdTgNV/JTScONA0v5Zfri2U7yIOOG+YHTgH\nXqiskNWQM9g6kMwjZiq9ChRvsP3XIQNDw5e5NjvEqvZSnPm6LTdLkxDrqBFx\neL7FLeBNDgi1pfG3WGnfwfAPniKXOKA7b2JDycHhee2psp1Wd5BEP25dxg5W\nLiRopeJMAKP59ZgkN/Vf7AIJCHxoziM6oQWJNiYV+SVeOciFgH/h9E/T1bhq\nOXYiwSPxiSRMM6ilrrnR2zwbxT18mC26AomvBnkyLqEMaMZotxBRyAR+5j6d\niHoC\r\n=V8//\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCIAG/IpX6PP1eJUI9tk3imgXMNVzGJY3OlpJTiBOSwVE5Ah8A+8+WVPdtshXtd+HcorlXW2FXzurpK4Q4kRrSIXhD"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.9ecf3bdd.0_1615422256359_0.5564691516658817"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.7c0e02fd.0":{"name":"@material/mwc-list","version":"0.21.0-canary.7c0e02fd.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.59010b6dc.0","@material/dom":"=11.0.0-canary.59010b6dc.0","@material/list":"=11.0.0-canary.59010b6dc.0","@material/mwc-base":"0.21.0-canary.7c0e02fd.0","@material/mwc-checkbox":"0.21.0-canary.7c0e02fd.0","@material/mwc-radio":"0.21.0-canary.7c0e02fd.0","@material/mwc-ripple":"0.21.0-canary.7c0e02fd.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.59010b6dc.0","@material/feature-targeting":"=11.0.0-canary.59010b6dc.0","@material/mwc-icon":"0.21.0-canary.7c0e02fd.0","@material/mwc-menu":"0.21.0-canary.7c0e02fd.0","@material/ripple":"=11.0.0-canary.59010b6dc.0","@material/rtl":"=11.0.0-canary.59010b6dc.0","@material/theme":"=11.0.0-canary.59010b6dc.0","@material/typography":"=11.0.0-canary.59010b6dc.0"},"publishConfig":{"access":"public"},"gitHead":"96acba80bdfa05054613c4753b3c0211e2ac7a76","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96acba80bdfa05054613c4753b3c0211e2ac7a76/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.7c0e02fd.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-e9YCFfBy12x14xKb58b7Es5ozkF5s2pvnek+K62HqWXT+AGZ4zn7RUM7W9ctlIjximg99Z74YGfQiBUcb5a7gQ==","shasum":"91646cf75acf3b579d236b907242ccee469110e9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.7c0e02fd.0.tgz","fileCount":45,"unpackedSize":250569,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSXalCRA9TVsSAnZWagAAqBQP/A/uFat2LdF4/Q/y1+CM\nZQFlFbBxikvosyb7kBEwjwofh5hZNbNdPew0y90MxKdPoT6toCam7279xLK5\nbRSnl6/VdYIm3eMO2o262S7+4kdALhTTODViPDfltEw5p2AHSOfcbYTdqAjH\ny7RYhX9T5o4bOuuQdcCBo4jba+rj6+AdEDlXhRQZwYnH+ZVt4FSZFwu47ecG\nM9eMV5QAm1Bg4xIPGQcdjF14NH3x+/ebNL5TaLemDCSa9TpMyvFy4AS7keDg\nQ9HVUtkXQrjX6MGdPdqeGU4WlhNVWhjCP7CeHhVyz4IKgHBhRjFbB904FyFj\nZMhT+SsiDQfopRrNPiIFUHeYBjyCuq5akZvoYDeJQBvUaltOCkmqMb3dIamK\nnODn8IJiWpcr8Ohtzjq5ktTxGcxslUP+QH3VO/Xof6G1uwxWH9bsQRRJnwUE\nD2WgAH5+mQfKnTVeqYLLAyimqgQoV0c6Pr8o0l41dq7DTi/+krlbZI3U4E04\nNR/7rHdIlUVIfAwb+yQ9x6vzmJJwtlwpLgtWoyHYXxnQDVpvRG6QF+ST3mUV\n0ORg1azk+39LyqF4qBI+XBicxOzn2tA6oPb97C9shlZ2bxvdGTPG2b8bCI8c\np3Qex7qBwBiqcIRiRAVeOP2/XGm6kIWnvFQGQK7Y0Vej3eZOjfQdHqC3KI7f\n7jYz\r\n=CMnQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFhG4k9s970XxiowN8B0xeJo69SAixZ5c+pvnml47HvKAiAehO58lytSrTuYyTtdGJ/M2Jv1ZYSCqBi83V8deMi8Fg=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.7c0e02fd.0_1615427236629_0.4031155637550745"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.2d6d59cc.0":{"name":"@material/mwc-list","version":"0.21.0-canary.2d6d59cc.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.59010b6dc.0","@material/dom":"=11.0.0-canary.59010b6dc.0","@material/list":"=11.0.0-canary.59010b6dc.0","@material/mwc-base":"0.21.0-canary.2d6d59cc.0","@material/mwc-checkbox":"0.21.0-canary.2d6d59cc.0","@material/mwc-radio":"0.21.0-canary.2d6d59cc.0","@material/mwc-ripple":"0.21.0-canary.2d6d59cc.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.59010b6dc.0","@material/feature-targeting":"=11.0.0-canary.59010b6dc.0","@material/mwc-icon":"0.21.0-canary.2d6d59cc.0","@material/mwc-menu":"0.21.0-canary.2d6d59cc.0","@material/ripple":"=11.0.0-canary.59010b6dc.0","@material/rtl":"=11.0.0-canary.59010b6dc.0","@material/theme":"=11.0.0-canary.59010b6dc.0","@material/typography":"=11.0.0-canary.59010b6dc.0"},"publishConfig":{"access":"public"},"gitHead":"52ad91ef80e9719962d213826d84928a37cf809b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/52ad91ef80e9719962d213826d84928a37cf809b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.2d6d59cc.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-Bp75nEYI3f85BixqZnyhjKtsr6JP44qNdvjfrx5/9E6nxEVz5EohvkgqhII98dNq9V7e5GOiAeQ/hV2uvkQz0g==","shasum":"a24c7c17bebf39ff115efa2b3dbc88155ee61b98","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.2d6d59cc.0.tgz","fileCount":45,"unpackedSize":250569,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSmGuCRA9TVsSAnZWagAAqMwP/337B0vbGKrdLKoEvf+j\n2eYW3AY3XhVkzLZKRirmyvNvdyJkCwEdwBQ3N4gHVoCtWA+CYsDuEPvCOcT3\nJSOLnrpJe/pQtm6V41s5jJwB8EFYMSCWKp35eiHMFKiBx90cdkrrviy21fav\nXebLK898sMeg82QRL6kB064bCQGCSw8mHCuZR60QJKdbiL2Oicc4U0sAzCx8\nCq54w8aK7o1EXIF2jx/BjiBRi074v729EbEwTvUUAlNsgMYGBeJj2rqnC0bh\nRzB/03O8IBrI2D3c+FGe/7T8ykeQ7De3STtfY8lvYR5whTUCJu6/AKMDYUfF\nieT6KwuWX2WPH9LvSAz7W+ZA8c5CfA1ES2tNTwVdMO9cuhHOSqU2XWjp9oAv\nDqsq4h4tDHqSapI9iuvFNjjCcWE1LmQViDH9TNcwMNZoGYYCp1cMK5GzdZc2\nFpN4wU+Ce/kreM2TrtuigrtpE4YrAiKcLtlTbvrByplJGSy1OqlwkHpszrsz\nDiRLuarJd5ZzQ/A0BMZ/qvxYJVO8WwinzHgGyebU3/L+SSeK/cQMF8dwAncE\nDy70Gwl/0XYSwOQMOht7gCSdChqvPRp5L/JGktDD7AaghoLhrxyU5HU79/DR\nxFGpy2QuLfn5W6y5F+fl4Ceb9jrqdfhAMmxOti+KYM5UflIk31moWaK7n72H\nKdky\r\n=f9aB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA/l2Z/Z7PakjP6H2koh9QIHRBbyp7MZFv+S/LDkpBySAiEAuMg3NCnsgbp+/ro7o5EKqXyYQTS7CrGHoHaYFzasdRw="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.2d6d59cc.0_1615487405764_0.8929453210905463"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.0138863c.0":{"name":"@material/mwc-list","version":"0.21.0-canary.0138863c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.59010b6dc.0","@material/dom":"=11.0.0-canary.59010b6dc.0","@material/list":"=11.0.0-canary.59010b6dc.0","@material/mwc-base":"0.21.0-canary.0138863c.0","@material/mwc-checkbox":"0.21.0-canary.0138863c.0","@material/mwc-radio":"0.21.0-canary.0138863c.0","@material/mwc-ripple":"0.21.0-canary.0138863c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.59010b6dc.0","@material/feature-targeting":"=11.0.0-canary.59010b6dc.0","@material/mwc-icon":"0.21.0-canary.0138863c.0","@material/mwc-menu":"0.21.0-canary.0138863c.0","@material/ripple":"=11.0.0-canary.59010b6dc.0","@material/rtl":"=11.0.0-canary.59010b6dc.0","@material/theme":"=11.0.0-canary.59010b6dc.0","@material/typography":"=11.0.0-canary.59010b6dc.0"},"publishConfig":{"access":"public"},"gitHead":"851518435241b4315820e91765f5b26a5537c63f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/851518435241b4315820e91765f5b26a5537c63f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.0138863c.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-7VAMMQv4zdHVdxGKs5GRq3waxVmjrxyFj4ZTRymvNHa9SPYGYW2n7y6r8M5PAAUW6bf6MRo0n/keVT9uTPeJXg==","shasum":"59c7b33e7a31a06b1984c89a9058697271634622","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.0138863c.0.tgz","fileCount":45,"unpackedSize":250580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSmNqCRA9TVsSAnZWagAABpUQAI7Yxq2k4+6FOsU2u3Le\nhQfmzh7Tk2lhgwEAUyCuALPuisPrflXEe37vvRhEpYDU5msZl1jgr1iVdIvp\nY+9upSHyNuGFeKoeD9X4btLc0+8tHT1P7VdKLBhSyVkfG5WUv4Zg79dEjTAO\nNnOisvWyDsZ7UjdvttK46/1UYY8V/Sq4omHWegDm09I7DmwK0aUw1q1R2NKn\nUXIR4jibLyu4OkotyD8AhTHLB9v1+2ptfH/261vsVpdwYer26Swx+6vZP5nY\nnhDjB5nMtVmTLY2McioXr7wWNw9RAd9N4BT9l/NtUQJ4DhkRLLmhBYPoAlkj\nS2x+gTe0PgxfcK7lsX86EL6/sYRvzztDQBGYhGHsC4UjCq5s3VxMeGbLyanJ\nFNOJnAGCddBcfK61u5HKrAwYUnuwPhCpfP7n7zFQblnL6F+zX7BlzNPyRFaR\nxD+OSO/+5jUzB+Y/PB8bqBQI5T/SEuHisJzyMipszq2oLg67hhLgvZYROSEN\nKH5mMkdYY+pNV+Jf0EniOMfxtawo9LL/SGHO7R051xPz1R9t6wliKHn3ruSX\nuVHOPwdkcrLOrjMiWzFdtDOhsvJN4LIBFqKSMC37N7MEjA0tDP8sGWMgH+eU\nQkWvdJB8lSz/0/H/nZECGrz6e011/DC8fNFWi0QIVlNza/CxCLzdY4HLefku\nzOS2\r\n=nt1F\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG9oFkDXo7iKYviWOBOswMIg3Sex/9npBxmcOzL514obAiEAuODXSBA0O5VS552rzgzfDNOkvc9+6n5EcHPr5/maofI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.0138863c.0_1615487849594_0.284210012389547"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.926f5bad.0":{"name":"@material/mwc-list","version":"0.21.0-canary.926f5bad.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.59010b6dc.0","@material/dom":"=11.0.0-canary.59010b6dc.0","@material/list":"=11.0.0-canary.59010b6dc.0","@material/mwc-base":"0.21.0-canary.926f5bad.0","@material/mwc-checkbox":"0.21.0-canary.926f5bad.0","@material/mwc-radio":"0.21.0-canary.926f5bad.0","@material/mwc-ripple":"0.21.0-canary.926f5bad.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.59010b6dc.0","@material/feature-targeting":"=11.0.0-canary.59010b6dc.0","@material/mwc-icon":"0.21.0-canary.926f5bad.0","@material/mwc-menu":"0.21.0-canary.926f5bad.0","@material/ripple":"=11.0.0-canary.59010b6dc.0","@material/rtl":"=11.0.0-canary.59010b6dc.0","@material/theme":"=11.0.0-canary.59010b6dc.0","@material/typography":"=11.0.0-canary.59010b6dc.0"},"publishConfig":{"access":"public"},"gitHead":"516a00bc24de904c4782b3d5f4f0d285b7fd1d3c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516a00bc24de904c4782b3d5f4f0d285b7fd1d3c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.926f5bad.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-mK/huOYTI762bDClKFuJ7LFKWPiFjFujYH50pLjBtHVOb/qJVod4um9qMuc9wykTl7TCwViq6+tD5zmuN3QLwg==","shasum":"f5042fac7f1bed9a76af7eb21cdf95de60318ab1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.926f5bad.0.tgz","fileCount":45,"unpackedSize":250580,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSntICRA9TVsSAnZWagAAicIP/25NdBiXLJss3RRDiM0Y\npAg+YuwCF7dXGa5UCFc+H4qNq97tEPYGhrpYI1LoQRjxw8tdldycQze4eGeG\nWXxM7/hE2u7AnD5ZkYSRS/ESPRVfx1rLGG4sMOSH1Yi4kz1mDNOANyPBaFVs\nWQ5WEq0nR2bLdcR5c7APrS2/kb0hcV5cNsi1jtpaAPXgAsmUjMLy09YbnLJe\nez8QrmL8WdP0uN4jCbSA90gm4IhKNvlz2LvpqUDN2Bu6oaOb8P7k8MAM2wo6\nF/lyQqaLgmYUd8P9N5kU9zuo2YWE/942tv0O5u+BUTIFvGpd/VjBUyQxfwTy\nR/y3Vo4vuz9vXo6XaQ4Z+PfCGBsYaPLGfQIsKa8syINagp/aZQvT+Mqy9u5e\n9WD/4C+2UI4NahZjwJBD7dmFtT5BXqrttvhmcQjsi1gT9sBe4exd8JKjVtnH\nzCOz2rGjTWpF9mEio/Udu1bGpaWVDYoQiPICg/4ob6YD+27H6KlJ27Xn2wKs\nI5ZLDJ28pc6MdBjXB7VeSE2/IQJjCgSbCv/3Bs+rP/aBwe/Mgy6iPSmqDXFN\n7l/hA2SrDu3kMka+xJIJRlD2BcydPt6YjTlMGRXorZh+4Nx8syMFkTDRtPMU\nDilzqX7YaRYfRqh4PmIJ55fs8H/8CWnY+Cb24IF3dS8Uv/34J6tbyuBJHw+q\nf2Jm\r\n=/n8G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDSDJelVkrMT4ZU8Blr0Wh8rVVv5OhFnDBtptAE0KLOigIgUZR/isblqm96IGh+ENicLcWPo13oizFye5Yib15DzuI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.926f5bad.0_1615493959743_0.6089865279283033"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.520290a9.0":{"name":"@material/mwc-list","version":"0.21.0-canary.520290a9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.1e0653477.0","@material/dom":"=11.0.0-canary.1e0653477.0","@material/list":"=11.0.0-canary.1e0653477.0","@material/mwc-base":"0.21.0-canary.520290a9.0","@material/mwc-checkbox":"0.21.0-canary.520290a9.0","@material/mwc-radio":"0.21.0-canary.520290a9.0","@material/mwc-ripple":"0.21.0-canary.520290a9.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.1e0653477.0","@material/feature-targeting":"=11.0.0-canary.1e0653477.0","@material/mwc-icon":"0.21.0-canary.520290a9.0","@material/mwc-menu":"0.21.0-canary.520290a9.0","@material/ripple":"=11.0.0-canary.1e0653477.0","@material/rtl":"=11.0.0-canary.1e0653477.0","@material/theme":"=11.0.0-canary.1e0653477.0","@material/typography":"=11.0.0-canary.1e0653477.0"},"publishConfig":{"access":"public"},"gitHead":"9817154a83b0101256b341e18843332e354f6c08","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9817154a83b0101256b341e18843332e354f6c08/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.520290a9.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-7dXE3SZ8MZEtIkCf+oYAig8hA8p5Gia/9RWiJ8C9f3LLJUuUrg83f0IKv2I2ayN9PFkz6Ot3/8TMBQ0XojxUVA==","shasum":"4ab04d437c23ac0273b2b0424bf2563d6fb315b4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.520290a9.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSpmTCRA9TVsSAnZWagAAwoEP+wQk8d/bEdmXJRNyzB87\nwwQelTdwC3KAfWVZf8JDTe0ehTHvONL0mobDRA5nFQSeM55cBO3XQwtauo5c\nUOW9UMlnGn4j8oiEsD9j9czFrht5KKeg+YWvFy2S8lZnXjAGFtiFordFFKDc\nhiL7jqfpRn7/yefifbTO7I2djimA/QfMMzalR7Qn4WgtOMEhrJriIc6PyH2E\nwI0sbSv+jkTPCBr0dIZEUM1pIwAc7EYcNVK+kWbDOYp/gon2uuKUVbxkrGTl\nytZGFAplmaCaKNcM9v3FSVA83c8OHf7h5AjzeZYiML/CqzO8eLe9KZkptDyr\nJcdjMWkAj1tufRxWBJCpjd7DJcShQJUgSgEs9fu0hZSxiqjaH38hXHQKUbAI\nw2SyvMnJxxwO66VOqmZPWbaTC3PbDRYO1EkI68qeePHp1x7lFQBrmomy2dPJ\nCVWsvTee8UlsLhyVt8Dhg12YI5baewOZyvHir0i3CmaVVJFrPEagfpt+FB8N\nhiHq9Bj932g+wx7OHm/z5wGZYWaXnsjovG0ImKH+r6eB3TFl3cCqzGK19sCS\neVwj8ynMJZZJ++f0Q7Fadb7RDFeSijxDzjyz9HG6YYRhkxfAveN2L7f5eWUG\nfANyXfC8woQeGyJLafNd68Es7mZnW8iI7bTq+YB94hJ4CcBy3ZHgf13+CJl8\nvvp3\r\n=PyEQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICXiBXVNoks9675XKJ47UrpjQnfYK+M2KwjtY7HNDq84AiB3LrXR9UV2yXDU1FhXXJkhnwaZvaZ27rTTp4L1Sp0Y8A=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.520290a9.0_1615501715522_0.4377536918425482"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.9ec431d1.0":{"name":"@material/mwc-list","version":"0.21.0-canary.9ec431d1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.1e0653477.0","@material/dom":"=11.0.0-canary.1e0653477.0","@material/list":"=11.0.0-canary.1e0653477.0","@material/mwc-base":"0.21.0-canary.9ec431d1.0","@material/mwc-checkbox":"0.21.0-canary.9ec431d1.0","@material/mwc-radio":"0.21.0-canary.9ec431d1.0","@material/mwc-ripple":"0.21.0-canary.9ec431d1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.1e0653477.0","@material/feature-targeting":"=11.0.0-canary.1e0653477.0","@material/mwc-icon":"0.21.0-canary.9ec431d1.0","@material/mwc-menu":"0.21.0-canary.9ec431d1.0","@material/ripple":"=11.0.0-canary.1e0653477.0","@material/rtl":"=11.0.0-canary.1e0653477.0","@material/theme":"=11.0.0-canary.1e0653477.0","@material/typography":"=11.0.0-canary.1e0653477.0"},"publishConfig":{"access":"public"},"gitHead":"d7159bb385f7dc7e6077615de2e9bd441747fdc2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7159bb385f7dc7e6077615de2e9bd441747fdc2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.9ec431d1.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-mvNchoXg+c4xWJjHkTOvsg3SxyMyVPmgfRQxuJomf5oe7jsnwP9Xfw3lNNyX5DTuxmXSQI/UClJVjYz8IvnLpA==","shasum":"feead1690e6c8c790041b92660156c4280b1e6df","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.9ec431d1.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSpqdCRA9TVsSAnZWagAAp3UQAJb1v5utd/2AXFWLiS7A\nUqz8gLLIqDj5jZc3npDtkkQtrXuhu8W6Yrris9PlYS4dZ+9UVdZ2305EVhNz\nQQBE+IxfV6jiVjl8drZuhRcHjfiIRs7AVGzSi7d/wYVEmjeFBNZGMh9eAi8u\ny3DlGEiECIymAuOT5HAwDSuQFkhKA8UGebtJL+H5GXjLQePIzprcA+RzCQfs\n5+524hYKml7ytPK4s4LBAW2FLVrPwW0GxKKRQBDCYxOZmEAtWbarS7ubSjNP\nDDv9zrIOzcJO0ZZutk7Ilv1bEo9EZTBsOuYk74M8MIBeaRR18m5K8g1QEFf+\nz9A4si/s6TK6fQ7Wd7G5GfNrE3eM75cxtSTDL2VLJjgs528tgjv4zhwy3K0W\nmM3Wr7CAkF9jEQ0+IPdAIaZwtGlKXdqYEkY7XaOOB1gA4xrVXPzJOj0vSnNX\nNf1CYi1wlqqGv++SzwJxcfEzoWi6NWjHX6OWuoxoyImt/Hssvyx06Qydfbi4\nxnuVdYqP6a1AHNFKtcc+dWTCjh+y+r/Lyj6s9vbc9Oekw+Qv6BnBwKlqHl6O\ndThPm/zzjqfeDbRFWWV2micMYFDjncIB1BztQYviGdF268WFQxeHZvHkxGiT\nSm8vIfEWc3iyRO92q32x3dRzEgrn3OFo4V6odTDLSF9INQmxc14riFZqaeSx\nHdqJ\r\n=z+CV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDI3BrvRo/kh/1I6KwpHpNp5ZKQgm1p8hzhTk5LmVfwsgIgFmYmQbU24sSDvkdPD0GqcjTTqWqt73QPIkG0xqggufM="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.9ec431d1.0_1615501981023_0.38795570025630255"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.4246c082.0":{"name":"@material/mwc-list","version":"0.21.0-canary.4246c082.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.1e0653477.0","@material/dom":"=11.0.0-canary.1e0653477.0","@material/list":"=11.0.0-canary.1e0653477.0","@material/mwc-base":"0.21.0-canary.4246c082.0","@material/mwc-checkbox":"0.21.0-canary.4246c082.0","@material/mwc-radio":"0.21.0-canary.4246c082.0","@material/mwc-ripple":"0.21.0-canary.4246c082.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.1e0653477.0","@material/feature-targeting":"=11.0.0-canary.1e0653477.0","@material/mwc-icon":"0.21.0-canary.4246c082.0","@material/mwc-menu":"0.21.0-canary.4246c082.0","@material/ripple":"=11.0.0-canary.1e0653477.0","@material/rtl":"=11.0.0-canary.1e0653477.0","@material/theme":"=11.0.0-canary.1e0653477.0","@material/typography":"=11.0.0-canary.1e0653477.0"},"publishConfig":{"access":"public"},"gitHead":"571cad0df3b7d77ca4f17d7248d6115fb50b756b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/571cad0df3b7d77ca4f17d7248d6115fb50b756b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.4246c082.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-72Gj5sehb5gZ+tB+vJP6Q/sGaRRV96GbGbyvtcvglNzAy69ttAk0HsEkCTIU9ANL8IMjpG8/O2PWbYipTu0jCw==","shasum":"859e0226b1a0b3c2719e9ab3d5fb3933c8016023","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.4246c082.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgSpw/CRA9TVsSAnZWagAA9x0P/RtUZ7Ctlt2X3aAOA/9w\nwDs9xjk3wsCa5KG/1aIAXnt0D1RXxjOX1i/J0paFyQZcY/pR/gdLwo8Dc9Ai\nR6VhCMtWlE7Id04gts3G0r1n0dLpV76bDmM8nmkJ9qn2JZKCSaTUhnBEmCYj\n9dzzE/KzjlwoDJkl9tPrW32CHAzI3XtC8b2g/27SeseVCt6QEsZmFOogZLWX\nTEEvDDD7PKv1917vDBQRNsQ03ow4y+Oz1phGMbTOecuchcO3I3fP1J/nKsTD\nKOSjYYiTa+/BnQSptGlbujjybtDw+nU9vJiIGq329xYh68V8PtdSZEuHM9W9\nMdoOObsfLqm8TJ9XZ7xw4xnrUGtqGMf6qp38TI8wqsM5ExDqv3X/ZHpVnu/c\nB5GMBiJbZe+YHdFqPkbCt+PpjCASoog1rk1mSshoHvQC+cTI26+dyWrR/cTY\nzhX5Jkt4yJUgu/W7POVMGMBdNppDcbduJ8BlDGPZdyQ1pUX2vBAqblzY5mK7\n/okXLXby8LoXv8SHvspetp+Tk3qo+1tcaXqxwgHDoE1k783/vOR6gpQPc+lU\ne+m/5e8EIG7tKGzRVX5LilGjy4ODnpP3naUUe+EPX/vkDqYWly0o7dqD/YY1\nVhpwXB5pVpXx3gEBO0AEVY8cj/Fy1AZf/uhTZ51ExzKXQrUrDOs84WzoJCHD\nXnsn\r\n=xzl5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCfeUPZywmxBpJjMT8W4Fnq+wikeUfk3LP/4oA9bVM2nAIhAJwj/YDl+Svs426Vyyet/ZgM/ODdOqa9QsU79NtZMSfL"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.4246c082.0_1615502399439_0.823259991453847"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.2d736253.0":{"name":"@material/mwc-list","version":"0.21.0-canary.2d736253.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.1e0653477.0","@material/dom":"=11.0.0-canary.1e0653477.0","@material/list":"=11.0.0-canary.1e0653477.0","@material/mwc-base":"0.21.0-canary.2d736253.0","@material/mwc-checkbox":"0.21.0-canary.2d736253.0","@material/mwc-radio":"0.21.0-canary.2d736253.0","@material/mwc-ripple":"0.21.0-canary.2d736253.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.1e0653477.0","@material/feature-targeting":"=11.0.0-canary.1e0653477.0","@material/mwc-icon":"0.21.0-canary.2d736253.0","@material/mwc-menu":"0.21.0-canary.2d736253.0","@material/ripple":"=11.0.0-canary.1e0653477.0","@material/rtl":"=11.0.0-canary.1e0653477.0","@material/theme":"=11.0.0-canary.1e0653477.0","@material/typography":"=11.0.0-canary.1e0653477.0"},"publishConfig":{"access":"public"},"gitHead":"4d8c53039218a8da7cc5199162317802bf01f7a6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d8c53039218a8da7cc5199162317802bf01f7a6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.2d736253.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-5IRLZ09BHcQxT/tJsu01tqZd6CYrCx9dIVuyeevOYiCiuoSbfhtGo9sLWtUXBe4W6UquANJyie58UdFjxNOJiw==","shasum":"627cd0f5439cff3e80b33d96a22db13388cf7a81","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.2d736253.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgT+FsCRA9TVsSAnZWagAAeUYQAIZdfxTtYRzYjjCzcKqC\nxU76Od7E2zivwotC6nonXqRl4/8XLTbaVutF30S0Y/el0XNRo/bU/PLPkBYe\nMzwiE+3c1CgHjFJohEq6RhjbSYS3KW7l2oIFthoXK9d/kwLvNGHS8eqFEp22\npSQfchR/5CD45fs+04TtCZA9LzFrVSW4LbaDlYZ8yQWWS95IVizEu0W8TMO9\nmK6wEyShJGaL+LRNop3A/fQNI/SCN2LviASlC5lmMY4fDhDWuKc8Zi640m1P\nphlYg9euf2vz96St0Zmuy4POIJ8aoFU+95jHh3dtaSxSBHbpA8PLkDD+Jdhv\nHsxxtly9DVwZ7sR65RV7wMJXam+0XSwnYql87F7solMwCP8okL7ZLKJMSp3I\n1trCaaU5N4sbXyE7CgwM5bDdGEoOQYKZzKTeY+794NZc6NlTuUw5nfAwy8GX\nBi1yZRXyYBGKBuijvgzcm+JJjr9NNwJx35SrO4Qz2ro5FE0IVLiSRdjTwVPK\nHL1m6EDWXfJyR77ZewaxpBWqlPeqIpWwm9Rhoka3Yd8IhryBHj2X7BPjWFXN\nv+WYzWCacPHwVq08y4A9zjg93lL2829CLRU9+e1l7io2S8ltFzPN16J/XRY1\nWauOIuuTJgTijWuRsBaEaYPP7PjhcNpVjwuqUmxWijN5LkbzJV96vJVvN+sg\nQjel\r\n=WQW4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICuUrZ8usqo9wC/ZWFrZd4Gm/jViUImSllFdmSvY59SlAiEArA+b8de0XaYbRgZLwAFCnO3ZBaqd7uZ5GjAv9nNsFds="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.2d736253.0_1615847788230_0.7882687807473765"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.7033124d.0":{"name":"@material/mwc-list","version":"0.21.0-canary.7033124d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.73a227194.0","@material/dom":"=11.0.0-canary.73a227194.0","@material/list":"=11.0.0-canary.73a227194.0","@material/mwc-base":"0.21.0-canary.7033124d.0","@material/mwc-checkbox":"0.21.0-canary.7033124d.0","@material/mwc-radio":"0.21.0-canary.7033124d.0","@material/mwc-ripple":"0.21.0-canary.7033124d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.73a227194.0","@material/feature-targeting":"=11.0.0-canary.73a227194.0","@material/mwc-icon":"0.21.0-canary.7033124d.0","@material/mwc-menu":"0.21.0-canary.7033124d.0","@material/ripple":"=11.0.0-canary.73a227194.0","@material/rtl":"=11.0.0-canary.73a227194.0","@material/theme":"=11.0.0-canary.73a227194.0","@material/typography":"=11.0.0-canary.73a227194.0"},"publishConfig":{"access":"public"},"gitHead":"7797af96dedeb3641f0889f0ae67bc02a1ff2332","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7797af96dedeb3641f0889f0ae67bc02a1ff2332/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.7033124d.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-+bjzT3GTNe93PYggUhWpQvquIdeMJ0TfaIsWd1omQ7odC+GmWexm3JCAkQewAsngGrJLY8lqMFWM48ZIWqx/Wg==","shasum":"b6749667c9b8555e238cd178561aff5c187eb84a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.7033124d.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUPsXCRA9TVsSAnZWagAAoA0P/io/OO7WJCRVhrXGrExZ\nOpm7tp/TZ1h614SqtmvjF691VAG2yUM8C5UESg5VNkVlG2AishVjS/CivE8g\n5g7moZd0l7jR608S9urkm5ZELrfaH/VRih3MpBeil//U5M0AXLtfAj7uJshF\nCRORdtxHhxm7kV+Jvs76CzN53KNeA8F94Ey3Wm0lhKpuhmi+wiWXnhiAGz/b\nBfTv+3piPVXTz0EpKvDO5ZOlseTj6teMM2YLqfy1QcEymxVw8wrAUxaOwri/\ndYED6vOosXEPjFlVXzIFTrVF4XeNEAxU8nD3FtjfPQV2wQckLMhZIZWVlVt8\naxk2O91iL/lkY2mMNedZ9AQLXaeqBVBSANoKYR3361TigX4+8yiipXhbyS9z\nojsMnnhrujsPUVrRsp9hD6RfFqZf9N6XC2DTBdHTbhpi+g5C0BgLM1vZYphC\nLSj9KVG3yI+18/OEK+ohCHiHGCoNMs4jvjhhwPAjs09tAxO5AdQx+OZPh0Ph\ng2jWVx9/dNsxiGCV6nm7KdCPwozj7Iy4DLZxUKC/F8PBQJkVFKE1Dm0FDPwf\nAgCsbrYPPcVeqnom7NfYmk2F8P2duu3NLfOfm+d9iKSK7gIZSnQ/EZ5vY8sW\nqMA3AwWLktJmbR8bztoXDeNHUdaZbL/JsPETyHbavzsbDzdi8Aa1uqvS4hgC\nAaL0\r\n=Q7DB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDF0ubl/n0mxb1MdlK0OD0Da1gY22O2i6h/VH9ppx6qWQIhAO8b/+13SLuj4nmp3xroxSeyeEpSXaXbEOHjIa3EgJVB"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.7033124d.0_1615919895026_0.06122123925059908"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.6c0ee901.0":{"name":"@material/mwc-list","version":"0.21.0-canary.6c0ee901.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.73a227194.0","@material/dom":"=11.0.0-canary.73a227194.0","@material/list":"=11.0.0-canary.73a227194.0","@material/mwc-base":"0.21.0-canary.6c0ee901.0","@material/mwc-checkbox":"0.21.0-canary.6c0ee901.0","@material/mwc-radio":"0.21.0-canary.6c0ee901.0","@material/mwc-ripple":"0.21.0-canary.6c0ee901.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.73a227194.0","@material/feature-targeting":"=11.0.0-canary.73a227194.0","@material/mwc-icon":"0.21.0-canary.6c0ee901.0","@material/mwc-menu":"0.21.0-canary.6c0ee901.0","@material/ripple":"=11.0.0-canary.73a227194.0","@material/rtl":"=11.0.0-canary.73a227194.0","@material/theme":"=11.0.0-canary.73a227194.0","@material/typography":"=11.0.0-canary.73a227194.0"},"publishConfig":{"access":"public"},"gitHead":"d7894da96b1452ae771bb3096b993e3f51ce8adc","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d7894da96b1452ae771bb3096b993e3f51ce8adc/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.6c0ee901.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-QknzJB1CvlycWw1gH0yWVlLVI+FBB3XE5QiytKr6m0KqYTpN+OQvEsb0v0z1UNGC1FxyYKe2ujNCCM84tqpy7w==","shasum":"b42c618a6fab21d6652ecba35c8baa1a9773c2dc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.6c0ee901.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUTOsCRA9TVsSAnZWagAA9NwP/iQNIicePn7SWO6A9S/K\neD9qlm5DTQNT1HRugyGfV2NEdH9uBf493/AJqEaeu/0KCiYW6bZCJW8k+KXv\nmQpuxWByPGErOsAAxFXB1Nw5HSOPG2syzwie4MwwX+Q5KvivS5viGliFdahV\nmsbj/Y+x0rNlz/2VzEigsuz+OoBfjLpB6bUmbni2eSEZa1fg0mlfWFqVIA7K\nZjMgcmfaSTAdsdWzZdD4eLDg+eNtXjuUOffLofSXOF7BuaRpS/Ij6BpLIK7j\nQH2w9AGkchXb9KzF7krH+i2k5nloZ7OgVDQ2/pbsEVn4pW8BnVkZVin2qCIL\nXlald9Dn0m9yT1DSAjpkw5qUEajmoJMsT/xGmeeXdIgbmei5sLfpnEf61K+D\nQlmCAgIdzydv0knJgj8pe+Rth9S5tiL8MtPl/1O9qyjtwgajhsfCaqTxPWs4\nhWlr+BsBU7p0EOcCEQzzLpnIXGlPEC/Ws3SVPAz17mTVFkNy6KGTbTFv4Ncf\n7c6H/WqvDx+vKncZ7XSrbUNa91XcgGu8wf81K6Qjw/c36N3lKNf5F3C1ZeI5\n+/L+rmUvzhNj1+Gk7AdZC6PZCKdVCymgHODRbd5S+VBnqCJogMWkNagUp/MK\ntDTIJGnZCQ16ol1j+a95llh9x1l3S4j9+ep81khntuL7A4Q18PXULQhcdAO7\nq9A0\r\n=t9si\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEp/LUWMLyrnLqYYyZRynz8BgkyzPhn/UQXRimwEGU0/AiEAjhkwXhO0B68MHSZISdIBZoGGVse56X6xPSCeh+8hXII="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.6c0ee901.0_1615934380324_0.12343056761164406"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.7f0d605e.0":{"name":"@material/mwc-list","version":"0.21.0-canary.7f0d605e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.941ca3b3c.0","@material/dom":"=11.0.0-canary.941ca3b3c.0","@material/list":"=11.0.0-canary.941ca3b3c.0","@material/mwc-base":"0.21.0-canary.7f0d605e.0","@material/mwc-checkbox":"0.21.0-canary.7f0d605e.0","@material/mwc-radio":"0.21.0-canary.7f0d605e.0","@material/mwc-ripple":"0.21.0-canary.7f0d605e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.941ca3b3c.0","@material/feature-targeting":"=11.0.0-canary.941ca3b3c.0","@material/mwc-icon":"0.21.0-canary.7f0d605e.0","@material/mwc-menu":"0.21.0-canary.7f0d605e.0","@material/ripple":"=11.0.0-canary.941ca3b3c.0","@material/rtl":"=11.0.0-canary.941ca3b3c.0","@material/theme":"=11.0.0-canary.941ca3b3c.0","@material/typography":"=11.0.0-canary.941ca3b3c.0"},"publishConfig":{"access":"public"},"gitHead":"77ccd00da9f68d22de2494a2aa4f35b0da375669","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/77ccd00da9f68d22de2494a2aa4f35b0da375669/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.7f0d605e.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-6aHyPrxLM3PHhTU0NU0KVM/8mYTvmc7iGisvyf+tEnzaJcPad7ZN4f+N79VuZOD6p0zDPv59uvlFm3s6lRmT2A==","shasum":"5e89ff8233124a14b0af5655aaa86f8565fce44f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.7f0d605e.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUkTiCRA9TVsSAnZWagAADA0QAJvd8EhTzGa0x/e1dCz6\n3iImS+szmzZZeZ/mRvXRMptlNaVANNciudbNeipVKRG7XOqmSU/TaL2BsbIl\nGDQv1FRVhDnJ8hx5umj+L7Z2eO4t1h7vEaBe50G3SJ/mr4JAl4ShjVh0lbfE\nfR1qxBFSGZ/m9fysAuTMmUnXZ+TlrwGZjjFIgXvUvyGA2Ho9DX+UEQP2pN9D\nohNbYfwZJAwWS0W+SdD6VhEx/E0jSgGUs+jKBsVS+9MODSv804CPgMNCjFlY\nV0+wVEbV7HArkBpxAWKSdhsf53s5YDHlHopkIfWcPs7genkhUaPsEnaBcdol\nAmu8P5CLXfObdJHY+Z0Cc7tTw/Hqe4tVQ7E9OFGLuS3aBZLsGZVhwtWzNzOK\n02UwyMVD7wSp69HVGC4fSJX9rWqrbiyhQ0ZAycyWZ4bWQ3CkY+p/0/V9IWNM\n5BYmvZFiDZcs5QO/0pd2fY5Y+alqYvdAQh4q2H13fbJhRspyegW+57IGCKpQ\niN4jcv1Hev706tgWKwZymV/1Smk3n9YhNb3QmWYPY6dM3wp6ZUCQ0/0arWWD\nlGRNF3NtaLipjW+epaYnnWE/ccdMTYt9+EynsPHON08FXPNTvq7L4Mq6T8k9\nxTYIJNsqF+07FxSB1doxNDmtyswjLugwGJugn+WtL9fzeNrSdXUZYD2k6bPL\nDj2B\r\n=w7Iu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAOWBS49u0jSVy2C22HWkCrMKGEzZZfb9PowQ4dHywC1AiA3u1iI1Yrqw1+sAoBbO8hggVej/1FBHBCJLRxVIB5GBw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.7f0d605e.0_1616004321967_0.046275490178477874"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.572107b5.0":{"name":"@material/mwc-list","version":"0.21.0-canary.572107b5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.941ca3b3c.0","@material/dom":"=11.0.0-canary.941ca3b3c.0","@material/list":"=11.0.0-canary.941ca3b3c.0","@material/mwc-base":"0.21.0-canary.572107b5.0","@material/mwc-checkbox":"0.21.0-canary.572107b5.0","@material/mwc-radio":"0.21.0-canary.572107b5.0","@material/mwc-ripple":"0.21.0-canary.572107b5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.941ca3b3c.0","@material/feature-targeting":"=11.0.0-canary.941ca3b3c.0","@material/mwc-icon":"0.21.0-canary.572107b5.0","@material/mwc-menu":"0.21.0-canary.572107b5.0","@material/ripple":"=11.0.0-canary.941ca3b3c.0","@material/rtl":"=11.0.0-canary.941ca3b3c.0","@material/theme":"=11.0.0-canary.941ca3b3c.0","@material/typography":"=11.0.0-canary.941ca3b3c.0"},"publishConfig":{"access":"public"},"gitHead":"9399ecfdfc3b2f0153e16b3970555c1351c9ea81","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9399ecfdfc3b2f0153e16b3970555c1351c9ea81/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.572107b5.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-6G5pZzmBrI9P0ecd2YS+InIxYAnhEG4PkHIHZu7KX7OoyCKltf5txDsonruJvngbUaa/2cITNkn6hj3MQ3Fo8g==","shasum":"3807f783ae6b10cab816fd5473c477ad975b3d29","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.572107b5.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgU+hNCRA9TVsSAnZWagAAaawQAI0PM+AbgpvQ2fFcZX1H\n535Bu3KzBz/LB+UbhSmZe1RP7wt1NCMNyr9UtJx+XckrqW3i+bOXOvuaXMbS\nC6BFtc4XqaJdm8uExmu08jyHVveyXLzZ9sWjoTMYHZ6G3H7H9YlRHMDvYRPv\n9MkZVPn1D8Gwr25YSC5gsJW6djfaNbRCmCj4flNzlEOeP9ZU5Hw65YjBx0nH\n+7IC6U3N0edykW608MFJLfgG59Hqgp7PPkHj6s0dJSPc3nKDYL1r+X4fBpfr\nO6NO6R5LQ3LnTonmEeKdYph++y8wPXxMQEsbFEHu2UlVk6v/VclgfNtN5vcN\n2ei9RGVvsHzgPPo0E2H/tEfYeGke4eu43ZIrNg2zycuNHhF4+W6v4EjYyiEm\nV81kdanFrEEFrtUrz5f/bjb+WHhe+9ZPIo9VQfGtqxQEeX+DneA2+SaCKhzV\nv7gYPqIqsR0encTm43rI2PfrTP5Zt8LuD0pB1OeOfAtBsNRKcB1n6n3SXnLn\n4rZ7KXc0MGzxc3Mg2fw7Cqmr6WgdLfh7H9dNxysBHb9J9gFvocVBmOfED2dy\n7uTGAGu8TnllFDGqg1mbdTLFoQQLQSna9KX/Ql69fQGdGvnNmu2xFbdsvCze\nuZMwo5tqmKffdIiwwy8mW3bvNi6pheYs4gBaQLXKdSUyGhTyT9pas1P3wWpe\n4Vyd\r\n=b2jF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+CJ/09r/Pt8BPC8MPsBIdxgbs2GRf9/vEY6Nsr3KorwIhANRu6E8CdDEeTvRuQB1VsmSMZfHWoWfCsoQQmRsWJfCA"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.572107b5.0_1616111693161_0.2242471410193574"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.b7b220b1.0":{"name":"@material/mwc-list","version":"0.21.0-canary.b7b220b1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.941ca3b3c.0","@material/dom":"=11.0.0-canary.941ca3b3c.0","@material/list":"=11.0.0-canary.941ca3b3c.0","@material/mwc-base":"0.21.0-canary.b7b220b1.0","@material/mwc-checkbox":"0.21.0-canary.b7b220b1.0","@material/mwc-radio":"0.21.0-canary.b7b220b1.0","@material/mwc-ripple":"0.21.0-canary.b7b220b1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.941ca3b3c.0","@material/feature-targeting":"=11.0.0-canary.941ca3b3c.0","@material/mwc-icon":"0.21.0-canary.b7b220b1.0","@material/mwc-menu":"0.21.0-canary.b7b220b1.0","@material/ripple":"=11.0.0-canary.941ca3b3c.0","@material/rtl":"=11.0.0-canary.941ca3b3c.0","@material/theme":"=11.0.0-canary.941ca3b3c.0","@material/typography":"=11.0.0-canary.941ca3b3c.0"},"publishConfig":{"access":"public"},"gitHead":"23f87dc3afa9f7b0599f9673a9f27f15d9751f3a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/23f87dc3afa9f7b0599f9673a9f27f15d9751f3a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.b7b220b1.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-AZrJRGnqDselTo2w6UQjKrCCEsDyJnXegSpJ78MrTGx4+/nQ2rQW40U1PPMC4R2Sh16zAOB86bSU+8gVnqrE0g==","shasum":"352a26d543b71d80793dc38bf13ddf9de19dca9d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.b7b220b1.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgU+5XCRA9TVsSAnZWagAAQhAP/290+Ex0RDghLZmsTaCk\nwA0FAl7G3Bu7ULshOQrpYLllInQV9a3jh0XKh/+dJ0RgH5zeZezlCbBELCc0\n46u1WA//c3TDLKEqovvWOpQWQmDdhX9kCo+cobap1Wy+vDjXaKRaVqR3Svvw\nAwg6HNkJCdKAd1acxBEDZkMUD6CMef7DrSsaKIhUmRqyGDlmLEqmTphOZbxf\nYwwOy6vCmrOHJR8gXz/UAzzLahgNL8Upd07P6MpPEhu+1vVA9kcwDKTkiV8r\nPkJXOaaSWgbBBroHeVKCxfmXshrML2oMz1+RFiKWQ1WinL/gy5V5a+0ZytWS\ndZN8dIqt0vPaVCjiIiKR95yeX5fz9Px9eOlp3uFwT1F2P1ZsPq4znNu0eB3h\npbsXk7BsHVarKsLBzR89cbcoSzo7jh+OaLHZZ86qdQKVsRacv0MSdaXVmiNP\n64Lasz4iRZnhVV4d5voI0HXvbgwcr/9SY1x5vAfQCAtCjDOJxX3oC93fDJvw\nNLy5OBVyOQ0zxXWP0PiFxMSLXyQf29I2W4wRLaR+T8CxkIlkaEzaZUbZWSQA\nxNWQGwNGF7bPVFrvp0wRquWXfCy0vzb4dZAzzRDBcM1a3MteHXUuMiCYg3re\nHl4SfF0gRVpQjFsxzCQoPqFUQlsfWm+zdZdspFcRcxhraY0lMRaXXSA+ld1U\n3WZT\r\n=ZDt6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJ6pMlRkmsSZTEi4ixMONLU1tOwj/NU5DYidcSUvYRIAIhAJVFFxRzKYo655rzVnGKEdnE8Klwn1PtgRLoY3Xfsmbn"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.b7b220b1.0_1616113238757_0.6486371550550742"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.233b2de7.0":{"name":"@material/mwc-list","version":"0.21.0-canary.233b2de7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.941ca3b3c.0","@material/dom":"=11.0.0-canary.941ca3b3c.0","@material/list":"=11.0.0-canary.941ca3b3c.0","@material/mwc-base":"0.21.0-canary.233b2de7.0","@material/mwc-checkbox":"0.21.0-canary.233b2de7.0","@material/mwc-radio":"0.21.0-canary.233b2de7.0","@material/mwc-ripple":"0.21.0-canary.233b2de7.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.941ca3b3c.0","@material/feature-targeting":"=11.0.0-canary.941ca3b3c.0","@material/mwc-icon":"0.21.0-canary.233b2de7.0","@material/mwc-menu":"0.21.0-canary.233b2de7.0","@material/ripple":"=11.0.0-canary.941ca3b3c.0","@material/rtl":"=11.0.0-canary.941ca3b3c.0","@material/theme":"=11.0.0-canary.941ca3b3c.0","@material/typography":"=11.0.0-canary.941ca3b3c.0"},"publishConfig":{"access":"public"},"gitHead":"6887e9dd977fe57d5199416b097952ea056e78c6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6887e9dd977fe57d5199416b097952ea056e78c6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.233b2de7.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-xZ7wlaIXrgxZjpQpSW+avFaTh/fVJ5gPBZ82Z1VYaFMY01RwfErJgW9dqDQGfRcHk5MqgP+yjZyTmSquXYVZjQ==","shasum":"face41fbd2b0557eab5acdfb81d24de9368bf2d9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.233b2de7.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVO3GCRA9TVsSAnZWagAAlkoQAJEnQ0DmhbRNtIwRMuMi\nbZ6lOUl32ImljUiKz5o5XGw1ssekSii9RzLlFGrY+bSKoGQtZak6lCoVTlxt\ngBQ5JZ6vIZao9ASuXhbN4GYOuAiuVkbG7QFyrveSI2ww/P7DCrQZ4Hs84zBS\nqELM1zxApNozB9u43rOcXQuJDyU1EhGciwdUjN+ru3hiSfOlot41PU+NdDsr\nEPK9pWNkZx1FbpFUqspChcefaD1XNvTOdEwexuNvsbrSvRoJpebtpbpwWI62\nKrjSMtkzTirmrdNYpG7lQ811aTK+wmAk7BlCnHxgp/BBCKI1UAVxIfgWeqGz\nWTAcDoFkSpINPsWt4/rVFiE9NvesqHENunqpXNSqmrlOcVt7qG6jMvD0Detd\nPBJSgYV4DEscNmXCjlAofqXW01a7oJdz4z/KoTybLaDe+HL858ozfb3NVKRn\nG3lJZgB6W9CiO0jjlz722nU6aCb8kn8TpCknnk4U7xr7Smr9KP/MV/Cqhj0E\ntG/kus4LRqwD5RDjM7XIsaJPfcABKw38F9BDqXAZX84g/yz6bxPWFYbVeRsI\nFwtiJe0ZUPfch5oK0yrSV1ES7mCt+4mFeAAB1DZgTE0p5dAS7YpBS16AN5qo\nn1TOrQZgSvJlDryoBkis+ygmv9QhvYbKQ8yVe1VNEEmZmcswFC1CR5H30OMQ\n9fyI\r\n=kQeR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBb0wGgAc5yR37Q6ZamyZw0GMS+W9gWnWAVRW9U8ZQjQAiEAjcWB7tvpllRi/rb/B9DWoT3B86bdr2doV8ysBPvNSyU="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.233b2de7.0_1616178630370_0.6751700241583023"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.0c1a2d97.0":{"name":"@material/mwc-list","version":"0.21.0-canary.0c1a2d97.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.941ca3b3c.0","@material/dom":"=11.0.0-canary.941ca3b3c.0","@material/list":"=11.0.0-canary.941ca3b3c.0","@material/mwc-base":"0.21.0-canary.0c1a2d97.0","@material/mwc-checkbox":"0.21.0-canary.0c1a2d97.0","@material/mwc-radio":"0.21.0-canary.0c1a2d97.0","@material/mwc-ripple":"0.21.0-canary.0c1a2d97.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.941ca3b3c.0","@material/feature-targeting":"=11.0.0-canary.941ca3b3c.0","@material/mwc-icon":"0.21.0-canary.0c1a2d97.0","@material/mwc-menu":"0.21.0-canary.0c1a2d97.0","@material/ripple":"=11.0.0-canary.941ca3b3c.0","@material/rtl":"=11.0.0-canary.941ca3b3c.0","@material/theme":"=11.0.0-canary.941ca3b3c.0","@material/typography":"=11.0.0-canary.941ca3b3c.0"},"publishConfig":{"access":"public"},"gitHead":"d341fb857369610d763723d28d8c9955cc461de4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d341fb857369610d763723d28d8c9955cc461de4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.0c1a2d97.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-lVaS6oyAP61ZpQnXnVSi+PS4Uq54/Knois/PbxzlkQigg528DAU2l/jHjGKXV9lSCfR9UaEWq9uFmJRP1l75LQ==","shasum":"c5798e6b3f6d4da2d065ea86edeb45b6384d91e0","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.0c1a2d97.0.tgz","fileCount":45,"unpackedSize":250617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVRXzCRA9TVsSAnZWagAABscP/A0LcamxFah3b8AO7eSz\nXhXZDAC9SUWM8ubblRCOBNuVJbBTgNiB0xx7oezHsTUZKq/7lLL4UigEiDTc\nbdk8HABmyIkHrSTvHT+1M3o63el3we9FfYkGumavCbZ7VgbkVtqt8KxXA6+Q\nH3h6kfcrTxlpQH5AE2pecMp2RAfHdSlHJxFxuEP23+vVIq+LYvD/3OLSUEcc\ngO6CuBlSQ8ZzQqS+cjdaNFIGQtbGvZs0f6yn278Ndpmuja2GgL/8gRveiRNR\nGT2VmqOpIhQ0w90DbyzBIJIqq2Y6+f/Y3W528zKN7zgRRNC7Vi/KB23fhb7T\n0YBWUcKM6i1DV42PXtWMZs/FM/ZG4TJl18C6jkquFJlZy2Bz/NEKvbB6ZdUt\nhGyMbhk/SMSdHv2TW9VdFxBdiyazssygbs9FsPZtqhRCXWK8r6XrGFCJYIi+\nmCisceX995ZA2UFioAInGFuCDZyAhDd0SjMrV5z+pfzg/BFSdD7Y+m3UKbzz\n6tP1gpGfBWmP7f/0RGRYE4qsXRx+/J4QZM6gAI5GDvj3stjOMmCRtCRxzV/n\nvdifx+29P8OwYVebpt2CckaPyitq5JtuZL+WSLrxAwBnumzcERsY7u4SHe69\n9GkL1BQxIwAsHtfB7OGEZFFLLx9qfwcqdQRosAto2ke/uWMCEmlxcezrqlqa\nug05\r\n=duXf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDESTmLoojzKLPj25HscEHnbLjv3WZTBfUD9//0KrKFxQIhAIFdtnnuqWfrqAARctKPUoYaC0DHKLmvcH5lR9ouaE5U"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.0c1a2d97.0_1616188915319_0.7939308876296476"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.57ca2e73.0":{"name":"@material/mwc-list","version":"0.21.0-canary.57ca2e73.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.5f0fc444a.0","@material/dom":"=11.0.0-canary.5f0fc444a.0","@material/list":"=11.0.0-canary.5f0fc444a.0","@material/mwc-base":"0.21.0-canary.57ca2e73.0","@material/mwc-checkbox":"0.21.0-canary.57ca2e73.0","@material/mwc-radio":"0.21.0-canary.57ca2e73.0","@material/mwc-ripple":"0.21.0-canary.57ca2e73.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.5f0fc444a.0","@material/feature-targeting":"=11.0.0-canary.5f0fc444a.0","@material/mwc-icon":"0.21.0-canary.57ca2e73.0","@material/mwc-menu":"0.21.0-canary.57ca2e73.0","@material/ripple":"=11.0.0-canary.5f0fc444a.0","@material/rtl":"=11.0.0-canary.5f0fc444a.0","@material/theme":"=11.0.0-canary.5f0fc444a.0","@material/typography":"=11.0.0-canary.5f0fc444a.0"},"publishConfig":{"access":"public"},"gitHead":"aa86345a10da02c5166fca78e72e367ebeb95677","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aa86345a10da02c5166fca78e72e367ebeb95677/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.57ca2e73.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-AfHG00MI7gd68X7i4Xj4ou3mGjmZBpmD/bIUiMl92VaENyleP/qZovcX+dMHzMCsx7dgxLnZxaNlAJUvqZaMrQ==","shasum":"482b46db0ee70cbdd356371fc989724f7a21d1e3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.57ca2e73.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgVSibCRA9TVsSAnZWagAA+qAP/0fr6wHQ567eY4udcvmE\nboI95A6zIW5Et1OjhirmReQ8AIM1g7hdqNGCyXlIflAMuEw+dV9vfxQIbC5B\n+IcGO8CiMV9z9haoqjIutBGfm10SVtCZtvFopQbbIZgp8KhKSkEkriLlvm7a\n3eQh48Vq8ijXZa85u7BYWaF2Zux54qHQfmfaenxKFZUvAbLHPvRLwhcc4gWW\n0EAA3dNjCPYpgh7VuDiPLkmgGXKqQK7K2c0UlWT7opn5qtd08q49XcsgeJPE\nfDgrPzIO3Up9eCClBYaaQl9VZggjI4cT0+MrDb2ybfVL2d3RZUAK3UQxUJCK\nhFhX2T4B4zikqNwMmqT+NMnAB78+f9xqiBRc2ckTeZIAhiJgWPIZBu12SosT\n8axBCWuwgfRfMJCV6qq1+utpW/MFpFeeJx8XI+dQBl/7nw6DKYQU009rgJs4\nryTDuzjxwIg0U2mmoTAsGkGbBP99ZBgtd8XI+LlyYoFY2LfYqE+yDiu2O410\n7c+nSlPNIKCBv8Tyy757SFuG8MQ5zguBEm3LOoGG9meDyZrfdychGh5a1B9u\n3A0IyTxGR47jHycBr8PJJ5pZY6Zrodl42+ZeGKgJsmQZsIf/LuxXtpHl2wrM\nnMJZBBFL9ptBlP5XtLdIa5vNnedCbQJTbq+9Y75/hAeT52yZsCLmQxs+C2NE\n/aX9\r\n=njZL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGDYSvTOlbHfgVQz4NPnuzG+eHCeIs7NWdAKvnC0ZXWgAiByUDl1vmch0G7TOMQGyuB6p00kzzDwKD7U7Ojv0v9jZw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.57ca2e73.0_1616193691133_0.02955120887678686"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.5c058f4b.0":{"name":"@material/mwc-list","version":"0.21.0-canary.5c058f4b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.8943b991f.0","@material/dom":"=11.0.0-canary.8943b991f.0","@material/list":"=11.0.0-canary.8943b991f.0","@material/mwc-base":"0.21.0-canary.5c058f4b.0","@material/mwc-checkbox":"0.21.0-canary.5c058f4b.0","@material/mwc-radio":"0.21.0-canary.5c058f4b.0","@material/mwc-ripple":"0.21.0-canary.5c058f4b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.8943b991f.0","@material/feature-targeting":"=11.0.0-canary.8943b991f.0","@material/mwc-icon":"0.21.0-canary.5c058f4b.0","@material/mwc-menu":"0.21.0-canary.5c058f4b.0","@material/ripple":"=11.0.0-canary.8943b991f.0","@material/rtl":"=11.0.0-canary.8943b991f.0","@material/theme":"=11.0.0-canary.8943b991f.0","@material/typography":"=11.0.0-canary.8943b991f.0"},"publishConfig":{"access":"public"},"gitHead":"6a50e9efec728fe20024c0ac52645387b1485f08","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6a50e9efec728fe20024c0ac52645387b1485f08/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.5c058f4b.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-K5W7h/E2pJ1kIrOTH2CV/0zAM1HvvDYIdRb4bfpypXj2YMcMkoKaZPiPkqGdnIr4lIkuP/kB4pzGZkIM9aKjnw==","shasum":"04865bedfcb4e860106f999867c41ff6fe9e1d81","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.5c058f4b.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgWnUQCRA9TVsSAnZWagAAl2UQAJUUEhVcWYRlRogbMsct\nt1l9lnxy1631Grp2tlLyB9Fcp08dBI7CEW2Peua0F207meCXyMqksmex+ADr\nx9+Ub7jfnMJef0Z5G7VjNlkm0h+cMxdQXBL/EeBK9EBc7p0NTelwFvOckLQ8\n9+0wmgZbCbwx4tl0jjb3EitdrJHqVaSDj/+1nwiHO2uLQ7OolowkZpjYUVQh\n+a9XQ3EM6eQPtMgSmXIPHSirhKXg2oUcr8fla0UpS1+VVFsXmFPdmXp4s2yN\n+QJYKg3SnuLZEictZ76khOHCR0+lS1mElUEEFEucV1PWr6NjGpSTUuVRYikV\nB7OBAfUzMvtpXX99a6CJuOcb1SVvEuvpQz/VRFfMuhgRew1wCFNHr4mfUENL\nJ7rtkpdYagQMvaIeGvcTvxliWVW6Gsfc3Evd/l/Z+CMMcbkUmJ6KscZkr8sj\nB3Aw1r10tUy5Qj7W3kLvLqeV06bNg+Tm0yMeWQkmYGNgkYA7bM/tFjxGEhpE\n20Zz5KeGGwBMlHHdC0pZUKq+aqOeMUXV0x/y4GN29vz5dX25FuOUpSeOALGQ\nqNzTfUaxa+yfqB8x7o6gsdTckwf8ynZALoL3w2HGL5nPbFBg82/+NKy8Djs3\n87JONwYzL7VTheLDPKcgYC2c7xcWMKzIYWnSCL01E8N/Jeqea2WK6M8qa+pf\n+/23\r\n=K41P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHF0rTPfF3HDP8k3JVLb/tDiz6yAOmeuvK9nUWcF6/wQAiAfEvX/TBH46lCFx806RbdaefbxudEq73gKmAQs26dPjA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.5c058f4b.0_1616540944313_0.4889811079310453"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.e27ef7cd.0":{"name":"@material/mwc-list","version":"0.21.0-canary.e27ef7cd.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.dc9c84023.0","@material/dom":"=11.0.0-canary.dc9c84023.0","@material/list":"=11.0.0-canary.dc9c84023.0","@material/mwc-base":"0.21.0-canary.e27ef7cd.0","@material/mwc-checkbox":"0.21.0-canary.e27ef7cd.0","@material/mwc-radio":"0.21.0-canary.e27ef7cd.0","@material/mwc-ripple":"0.21.0-canary.e27ef7cd.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.dc9c84023.0","@material/feature-targeting":"=11.0.0-canary.dc9c84023.0","@material/mwc-icon":"0.21.0-canary.e27ef7cd.0","@material/mwc-menu":"0.21.0-canary.e27ef7cd.0","@material/ripple":"=11.0.0-canary.dc9c84023.0","@material/rtl":"=11.0.0-canary.dc9c84023.0","@material/theme":"=11.0.0-canary.dc9c84023.0","@material/typography":"=11.0.0-canary.dc9c84023.0"},"publishConfig":{"access":"public"},"gitHead":"7631d1b220323112ce72141784e75c8356ca0f88","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7631d1b220323112ce72141784e75c8356ca0f88/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.e27ef7cd.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-CtLE87h+w57brBqm2qDKIuxxvkJH48okhKXsrmVszGqkb+IRIy5GBo+D6b83Qsjwq1LM5WBtysqt0zwP3XeFHA==","shasum":"99bfada028a76a689e14fc1438f38a6a98ca2d9b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.e27ef7cd.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgY4YPCRA9TVsSAnZWagAAllsP+wSUjjmH4LTTVZNayzMf\nnjtnMJATV0mDYsLB85rFRiPlbrR9gd+iw7zz0MmgPoMydm1dhY5oN0v1RpkE\nzHG8TNB2rBBAagQZVn/B/yO1pSU55Nk6Kbj9tZdJUDGsJSFpKs05OnoSiL+0\nGb2gwlyjmZ2Rj0KMXGlz8pc1MuffRRDvEOKlgSzrHVUsfwhiXNpvLgW54VCU\nXk4pQ/RkBQ62op2XLcg3LxqqxU3p1MTYtKu1LY1W+38qb8S2CsRCJN3E/HBh\nS75MOUUhTO1Ur3RVErVfki7QS+hYQ45DqqinXxU1pWYE2i/nqsqWKiHuJXPz\n7hKLh7MuRQk3xlal9zneWJmeKcatUEWMew5x64rrDcNfjQ5yEaERpXv6jHZz\nbc1ZXmteBPqmdNAzhW59gnjney5Vd9OwWf6Tj2S8iP6MkqLlwATLOk6X+QD0\nusG62FXlAxMVHqq2tPrel+fggWd4RaSDQ54LMQOvMgQjpCjWh8YYhYxlnMtJ\notq5kpJPUoKbDTLBzR1U9T2HzFMUzhe81lbRPKhvnrOV+ka9H27bAfPD+lTg\nDIPMGPydAUWvZC7f20hlhUiHaC1tVMVztwm6ZdlvzZGTYVX0OM66jLwNWvEf\nQRW5CSxW/pU99WUetXGjYPtn6nzrS64JhfKPgnXWri5p/tD6eJ9e1LNDiZZp\n/ytl\r\n=ouqK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCfFJGFgd6PrsrH0Cgg7mriVs94Vfdi+Z8Q4/SqoSlvbgIgFkDFwnM825+OvhuyOm7O1K5okB/8Lk1tHcDV0dXDwpk="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.e27ef7cd.0_1617135119448_0.9643931066992797"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.15c09e74.0":{"name":"@material/mwc-list","version":"0.21.0-canary.15c09e74.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.dc9c84023.0","@material/dom":"=11.0.0-canary.dc9c84023.0","@material/list":"=11.0.0-canary.dc9c84023.0","@material/mwc-base":"0.21.0-canary.15c09e74.0","@material/mwc-checkbox":"0.21.0-canary.15c09e74.0","@material/mwc-radio":"0.21.0-canary.15c09e74.0","@material/mwc-ripple":"0.21.0-canary.15c09e74.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.dc9c84023.0","@material/feature-targeting":"=11.0.0-canary.dc9c84023.0","@material/mwc-icon":"0.21.0-canary.15c09e74.0","@material/mwc-menu":"0.21.0-canary.15c09e74.0","@material/ripple":"=11.0.0-canary.dc9c84023.0","@material/rtl":"=11.0.0-canary.dc9c84023.0","@material/theme":"=11.0.0-canary.dc9c84023.0","@material/typography":"=11.0.0-canary.dc9c84023.0"},"publishConfig":{"access":"public"},"gitHead":"6f3ebc4bb5f04f139f9cc24061e00f418b04ae88","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6f3ebc4bb5f04f139f9cc24061e00f418b04ae88/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.15c09e74.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-CyrJ0modifwfi5ZYJW1BU2oczT9/WFfqwZpEaorErZkg2+Fa+YTpM4BY5IBT3caIzvCMRDBt257UG0eq4CAQOQ==","shasum":"93caea780c4f8498d5509b1c97582549991865dc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.15c09e74.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZKfWCRA9TVsSAnZWagAAGJAQAIwIhaaBx8f8tMFmTcvn\naRz5aKLKI1Zdpdu+qi6ChoCUVyylrU1TzwLNyHZbzByT8VlQ58UQ8MwVHrYQ\nnAsAcFa4A5hmjzwN/RXtbeUD7v7PIFcyUa0gw2/Y0t7/3qM86EAU2LPsHQT3\nSMmjBFML1UvXetW6SFlnfAp9QTgN9vZSM3E1qWrUU0A0nGyOidKyTacDHhMy\niMrQsMFj3RauZcL+Kvc3GdKyocIGtpYiGUGs3T7+j9wqs6zABtEFGXv3q0vd\natZSKc471QnzvLEWlGTstMJR28dgawnKX2ik5++ihRYXXftLgHSCKQEZT9oT\nnSFkZz/98K+ud3tTlC9aG4iLfvkB+ufwmZBjlkZhrZupcSIDZDxEs4JWLKd5\n+wy+qk0W40gouYCVYcJjahZvaARLpSngxfhMRGZvvo3Y4LBAibsECCAO6JK/\nARF4xp+7F35Qo5jz1CavDDRELK4SL/1eXQzYoMc5Ar5WJGgu9gTgYuDKaF6l\nRo6ZFFiMCu76bAtYdouJfcANrjDjre7K5guo2OOXdI7OuGd4dE31Edjr4TuP\nAic9emfeOJ11Kb8WPq3gQGeeQ0k4DJwM3nyV//Eajjo2kCMGFu/UBRL+4M4j\nMtUyae9Jx8m7EjUI99of7N96wm6F358fltp38PiTi2V89oSv277u7ysTGsEF\nI6un\r\n=vTPm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWm+zuB5WADSv/p5V1aegkQsWM79RSiWObq6bSDN8PvAiB3QwzIkgxRVdWl2YUO4Lod8zpiM9nQeo9MFl931/bpSg=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.15c09e74.0_1617209302051_0.2100830176770594"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.4dc32be3.0":{"name":"@material/mwc-list","version":"0.21.0-canary.4dc32be3.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.dc9c84023.0","@material/dom":"=11.0.0-canary.dc9c84023.0","@material/list":"=11.0.0-canary.dc9c84023.0","@material/mwc-base":"0.21.0-canary.4dc32be3.0","@material/mwc-checkbox":"0.21.0-canary.4dc32be3.0","@material/mwc-radio":"0.21.0-canary.4dc32be3.0","@material/mwc-ripple":"0.21.0-canary.4dc32be3.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.dc9c84023.0","@material/feature-targeting":"=11.0.0-canary.dc9c84023.0","@material/mwc-icon":"0.21.0-canary.4dc32be3.0","@material/mwc-menu":"0.21.0-canary.4dc32be3.0","@material/ripple":"=11.0.0-canary.dc9c84023.0","@material/rtl":"=11.0.0-canary.dc9c84023.0","@material/theme":"=11.0.0-canary.dc9c84023.0","@material/typography":"=11.0.0-canary.dc9c84023.0"},"publishConfig":{"access":"public"},"gitHead":"1f71c032815f456f2ddbee58c9b175e65da3c18a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1f71c032815f456f2ddbee58c9b175e65da3c18a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.4dc32be3.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-/REF6Mdap0xcfMYlWweK/F3bdJuOmyYBAghTfw6Dmoj+CEgCy/2jnlPC+xvCDVdlW7hAR2WcGHNzO7zEjgNdxA==","shasum":"343d8e54daf56377394a79410c511b76d935c268","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.4dc32be3.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZQpkCRA9TVsSAnZWagAAYWsP/iwOH2HOBkEowVlmMUFZ\na9FWVNRwigxQ7arEeWhrxVVVRQarL8dzp5GRPXiN8gRsBlb8XoTb3w/CtUhY\nLRvJVHvLSV9af6bQdOtqoJuwoubR4yocTBMYbXjbVagxOL6BukLk6W4u99AH\nNv6N5nSaYtbtHKEPk9F/C+j7d0JJdQg3gy+b5Y5G8apUrAwuwFBdSrkAEAkp\naBSfoe/WvVq4iqnsUH8vegYy3pQNOkfP7UupgFtWVuOUGpSaXIarvTjV3/+b\nhzoJ/n+4fQCJylNPpepXAIPiz9OcRN1KQuRX5KecYkqCsSEhPExrGboI6IXK\nTG5gIxLPoZMh2moH8BfeD5Qjtb8hokj8kZ6Pf4viPltoZ87BWLcFJGjeuKKl\n8pXtZaQ8ITwSxHYBSFbzQQOURkLznVF1KSdLEt0QKn2P6ztVhKGPQx7rJGlk\ng1ko+ff8+zEGHHPTmJa3kXMrEPitojVyB50SuYCUwHpL58UU5JB3vUzMh0w3\n4Vna1sNV5k7AS9K3oS23s3mIUaOjn536U9oD+LXnt3AW4eGasUUhveOAqzk+\nYDDtERJTmaA+lv810lzYBkaOvCmOjNMoV9zv2y3HpI9I9XJDxdgUOe6PmsoK\n7rCnfFuJdruxgqLyd2FDVYr5YiThiKIZoAMDUiUq4jBFDTsQ3YKHXMoyaZqk\ngVEn\r\n=Ixhb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEMCIHZfVGm8ntEqf6du3bdwwhQBUZerz6hgJeXfBv9h4aClAh8Sh6z13KU+g8OCXY0HR4Etzt/G5/QSjsjNBSBxYN8q"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.4dc32be3.0_1617234532106_0.8257385799980552"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.4b717f65.0":{"name":"@material/mwc-list","version":"0.21.0-canary.4b717f65.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.24609b822.0","@material/dom":"=11.0.0-canary.24609b822.0","@material/list":"=11.0.0-canary.24609b822.0","@material/mwc-base":"0.21.0-canary.4b717f65.0","@material/mwc-checkbox":"0.21.0-canary.4b717f65.0","@material/mwc-radio":"0.21.0-canary.4b717f65.0","@material/mwc-ripple":"0.21.0-canary.4b717f65.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.24609b822.0","@material/feature-targeting":"=11.0.0-canary.24609b822.0","@material/mwc-icon":"0.21.0-canary.4b717f65.0","@material/mwc-menu":"0.21.0-canary.4b717f65.0","@material/ripple":"=11.0.0-canary.24609b822.0","@material/rtl":"=11.0.0-canary.24609b822.0","@material/theme":"=11.0.0-canary.24609b822.0","@material/typography":"=11.0.0-canary.24609b822.0"},"publishConfig":{"access":"public"},"gitHead":"a7b21246791a74b1ae4e57975b1f4a394ad9cba4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a7b21246791a74b1ae4e57975b1f4a394ad9cba4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.4b717f65.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-z3F1wp1oU9RosPt1nGdEBJNHxvzIMEsz9GyGGmIS+7akjjuMMi3AgjxalyqpBJ0eOvsInsfK0QarqYepibMDsQ==","shasum":"2dd84ba24002ff2986ce0a5d854c7702e057c310","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.4b717f65.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZg2rCRA9TVsSAnZWagAAN3YQAJPL+1jXxTCcTWyznwRA\nY3dPnmIGRty6OAuSObUaeZHwIPtoa1dE2esLTymP1rxeVRLo+ItdF2UOAFtP\ncD0h23Mcyb51F/DfQiC68/JgHHBALxIm9Xj0jdNOFj0ziXXQGfu9bwRp6Hqt\nBwkBlux/8ZLZNTnCJugOtrLu6ySH795un8GjDJS0DCxzx0Tcw6yTivZNV1YZ\nZOXaBRgCPqKTIhPxdhg1t8YiLEuSnecEB0zLJmmEIIBwIcy28ITWFwnNfN3z\ncYZ9qRLWc50VxoPSAid0HvSdES2CJ7lwJpn/Bgy2Y87omYKy7M4xP3hSeXW7\npbgM0POnxAl9Xh7EmhhdzZuCy9AuUnDDjYoeaXoLZr+Zndti3SSxUWxgRLk4\nY2t7rVn1czDWCMFg+BHXmLNvyyM/GGMja0g2mQrS3tbKA8tMGUaDtVMg7ZNM\n1vXw9kxJTl3NzeLNjDccUrDK+dWvnDInZFlB5CtrlxPzGEp3VTdsxwlnsF1f\nZauJsQ0yswwFzML1zxVZWng+3Ls11wmgF+gM94y4pXr3JSNM8d20hUEt0HL4\n7BSUZmZCj4p7YEUSxbik1jsTwLZ0kxpmbV0JRM30OO14jmsGBp3NnP0lnyvy\nZFrQn2CkLvlMy7/udqEJcXlgfAACaj+6b+WkwwGU66dnikes3m8SfYqYF83r\n2/k6\r\n=VFkf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCYMkMrxfBBlTa9qeAQUEPHOYhEJ0Tc4b6QdH8Iqc7AwgIhAMmeVZU6Fj4br8HduooWezgCpnXfyrnVkHlWYdmzougb"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.4b717f65.0_1617300907456_0.7290208661452267"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.c6870f20.0":{"name":"@material/mwc-list","version":"0.21.0-canary.c6870f20.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.24609b822.0","@material/dom":"=11.0.0-canary.24609b822.0","@material/list":"=11.0.0-canary.24609b822.0","@material/mwc-base":"0.21.0-canary.c6870f20.0","@material/mwc-checkbox":"0.21.0-canary.c6870f20.0","@material/mwc-radio":"0.21.0-canary.c6870f20.0","@material/mwc-ripple":"0.21.0-canary.c6870f20.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.24609b822.0","@material/feature-targeting":"=11.0.0-canary.24609b822.0","@material/mwc-icon":"0.21.0-canary.c6870f20.0","@material/mwc-menu":"0.21.0-canary.c6870f20.0","@material/ripple":"=11.0.0-canary.24609b822.0","@material/rtl":"=11.0.0-canary.24609b822.0","@material/theme":"=11.0.0-canary.24609b822.0","@material/typography":"=11.0.0-canary.24609b822.0"},"publishConfig":{"access":"public"},"gitHead":"5808fd48fe9ee3cfe17f631aa6addaaa847cea19","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5808fd48fe9ee3cfe17f631aa6addaaa847cea19/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.c6870f20.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-Xwzt6wRaB3FYJP6EKnRcbRkAYfdHRl7NWc3Pzb42Sxe8b9hQyF4BLw24xhCCeJs3KZ7sBlavmAijCpn8zevNgQ==","shasum":"57fd8d86b8d23dc5c5a60289bcc0fadd3d4f1934","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.c6870f20.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZlp0CRA9TVsSAnZWagAALM4P+QBvDzNTco3dHZq2HqRT\nzeH/6yLDzjTH8mQSpfO2wAWrDWV50iso/wTL478WtNpFsh/Wl5Y5+QLieWfS\npv5Xddj6SBZHPrNtPCdMxHmso038GApl87gvQ42hv670zSsu3bmpGEUi6i3H\nWOZ2WsFoktFJ25HTqgpjdYQrPlOuncOeuFRUoZy5A1zVUHMyTH5aEWUT6xHc\nhRyrFUUhFqVmkVdanLX3uB5v89QfTdc+oFw9guJGjuGheJPtAUAnIMcSL1Wk\n9010m6n9+tmJYq/K2lk609BrwvugrPs6g5eA9N7QdrEFm5l1PkqXVu22Md46\nXKeemW2HINzgtZiZmKqxTolOyspP4zfgoZuwDxPw3Nr9qbdgAKrznUkuT7GY\nZ3vAdDT0wT+GgBgWkRxxcxEa0F7A5YzXDv3h4yTYThF0jQXarSe4vDtk8uv5\nOyybhfY3EYYdSmZc7uizuwyhSauvZD05G+LuvIyMlHpsyVorsZYtugLa2bGO\nxztV+2WS1qfmS1rXr9qHl4t4BLlDxryjXcqe10TzhOLrXMnH1E/NIsR5wF59\nVQIGZG1PuWeTCcW+BRReaGL+ggdW1wuwqG3Pmy7+SzTj+YJ52auK6g/mqSVT\nn1Dq+FkeXNrsBLYehqlL+ZP1+Ag/6E/g1kscdaAMRGJlRRtepj/TV6jItzMi\nsQQB\r\n=5xNO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPTDLZbLvx5QrE1sANHsy0eLF67m+1jpFGByTVNo2eHgIhAKt7H4x+mQ7IF4Z8HqlDckwYsfX+pUyq54nrPHb6psrN"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.c6870f20.0_1617320563960_0.5263326294719017"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.852f873c.0":{"name":"@material/mwc-list","version":"0.21.0-canary.852f873c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.24609b822.0","@material/dom":"=11.0.0-canary.24609b822.0","@material/list":"=11.0.0-canary.24609b822.0","@material/mwc-base":"0.21.0-canary.852f873c.0","@material/mwc-checkbox":"0.21.0-canary.852f873c.0","@material/mwc-radio":"0.21.0-canary.852f873c.0","@material/mwc-ripple":"0.21.0-canary.852f873c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.24609b822.0","@material/feature-targeting":"=11.0.0-canary.24609b822.0","@material/mwc-icon":"0.21.0-canary.852f873c.0","@material/mwc-menu":"0.21.0-canary.852f873c.0","@material/ripple":"=11.0.0-canary.24609b822.0","@material/rtl":"=11.0.0-canary.24609b822.0","@material/theme":"=11.0.0-canary.24609b822.0","@material/typography":"=11.0.0-canary.24609b822.0"},"publishConfig":{"access":"public"},"gitHead":"f528b03c675bb05baf871766e103e6e35c28e203","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f528b03c675bb05baf871766e103e6e35c28e203/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.852f873c.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-koOkh7NkUKZDl6lOR3qv/wpaJEqFhdcZsn23Jy/0LG7tkF+/t302y6/flkXmlj5n/5yd+uaYgdBhDAqv/Ykpng==","shasum":"25f52bddb8fe77fef738781e9a1c955bd540aaa1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.852f873c.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZqomCRA9TVsSAnZWagAAaE0QAIMIG4VdM4Phmt8JVJ49\nD3PBuV4ALJsGpIg3jucOW9YiOALYmI9CRp6f0tEqyhNWG6zGwQTVEiOtnZts\nyiYU5HWvOR/1VuqgESUWnnrF7z9znlDhrezVFWRVcmPnk4L6l0i2cdnErQfU\n1KEp+FMzDg8RraZdajfVRo5LqfT1DdkgZIDNc/LUVi5/2TKbfjmcnS9pjBVh\n2iekEzAXod9SNSod8Uf9Iui1wG6Yofk+Lu739FiBcP4lqwyeD4NwOPn3CPL5\nFKI65KpBFmLHBj6dtT3tZ+sJiiURJebXjOWfqSm1F6tpsYpoiieAgI0Gi3k1\npg9B4tPYuFNWdqzTWpBjii4+0QaLP9xM2tiPwkeO0an8IHdIaBap4CerKoqm\nma5fhwIGEHzfOQ9Jj0O9t6q9bVT84QaEm53+CTgtpbP/9RJKB/fIWHzSgmMU\n2WBour7tARbJ6rPmPi1WrktuDdu+LZvDiWklEcDXSi1sauWoHvliwwm4kLkl\nKyjwnWx39oVMzwHlUKJRw1KM44W1xhReaSW7vsnmLLzUACwVwwwbtjznn9WU\nd3Yq7dVFUVpnZLrttylhtMIdSKN6EDZZshUNI8er9B0ieZj7PpLxhTj2lU7e\n7tdXd1mYyVQ6fJinUOggOm+nf/OpPJoJBmjZQeVnewpNy8QF0hKWMhSkxC1u\njS95\r\n=Cfvd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDz4FFWkO9w0wUBiB8bjpuKZ23WHjRNulEHa0tdp/XmxAIgYIm8Mg4XcP2o64rtOUk9WIQ71oRVAtk+omIBC2Xn1IQ="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.852f873c.0_1617340966116_0.42427615842180977"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.4a674a1d.0":{"name":"@material/mwc-list","version":"0.21.0-canary.4a674a1d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.24609b822.0","@material/dom":"=11.0.0-canary.24609b822.0","@material/list":"=11.0.0-canary.24609b822.0","@material/mwc-base":"0.21.0-canary.4a674a1d.0","@material/mwc-checkbox":"0.21.0-canary.4a674a1d.0","@material/mwc-radio":"0.21.0-canary.4a674a1d.0","@material/mwc-ripple":"0.21.0-canary.4a674a1d.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.24609b822.0","@material/feature-targeting":"=11.0.0-canary.24609b822.0","@material/mwc-icon":"0.21.0-canary.4a674a1d.0","@material/mwc-menu":"0.21.0-canary.4a674a1d.0","@material/ripple":"=11.0.0-canary.24609b822.0","@material/rtl":"=11.0.0-canary.24609b822.0","@material/theme":"=11.0.0-canary.24609b822.0","@material/typography":"=11.0.0-canary.24609b822.0"},"publishConfig":{"access":"public"},"gitHead":"d4f9464090813f45495113dfd52201f8c86bab3f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d4f9464090813f45495113dfd52201f8c86bab3f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.4a674a1d.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-P7r0NXsWNwTeZHeh+pcVgAIlebUzd8q7pjcsC5FeUH9qS8bvrRT83mNaZs1v58moDhKx5JMbFuh351/QEzRjBg==","shasum":"3e39cfccd5b70cff6ee133a18d999e0e52934cab","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.4a674a1d.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgZy3oCRA9TVsSAnZWagAA584QAJzuznPfAva54mmEQADf\nqfqABWF8nDA7bpWZRDLOd0H9w4jPLIO+ffvJL7a4u1uyVSLOUdZC6pWrUzY7\nkq2GVUdngY/dNSJdHczimmjlIN+TPYs1k9l6oFtnVZqTqnbuGv7vxLkc9Goh\nPUHI5sZZlXh1XGlepmCYHXD6abGHEhaoHhN2KXVaqetwK14bRZUELHLlSEvD\n+kK6FsRmp8iV2VxCgYhoDge4CfT1Yyhu+3cbc64iqPmdpJZn91ndeFwAXG7A\n339OJdV2kEtiYHrBiwCZ8L2ehAJs5/YtBr5ykzleuIm54f0bTituKPtEu843\nHES/AI76lKjHHhXNS5uJlBuYYv/2K8Umz/ZmJYtvII1G+LxUQqjgu0quXwqs\nIH/ftKZidSK8KMxti0s1kt934H84KJNp2Ot3/mZTBNvvmbqY6h908xIt0hy7\nIDxzdTGKpy6p5jeKZrAK6Gz3T7VmD19yIiG7BF3vDxwjlCkMiOXznN1R6u2P\nbkVP5FdoLKTuO372R2Tr3dR9QpPfS2evft7Ngn0pS8QZBH0y1R9Lqdo4Jmq7\nHvkKWpGe6oyKEKqE2D6Om7FrARxuFl1cA3xsOm27c6Oj2m0Zl8+w0/dxIrKe\n0+LiqgLPxsXYxrBgsWBxhCItNTdMgnOjeFjw/7M3UuuE680M3gfGHxg8S63p\nrQLt\r\n=Ygx6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFoFSzwfeRSHXAxy+Bdtfer+JUdV0ecSsIqLVev3ky5TAiBPFuUOm+5BiYO8oTOz+TwxtpyfaaeiiJVPvnrfIwBx4A=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.4a674a1d.0_1617374695754_0.5036387554079196"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.c5b29ff1.0":{"name":"@material/mwc-list","version":"0.21.0-canary.c5b29ff1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.24609b822.0","@material/dom":"=11.0.0-canary.24609b822.0","@material/list":"=11.0.0-canary.24609b822.0","@material/mwc-base":"0.21.0-canary.c5b29ff1.0","@material/mwc-checkbox":"0.21.0-canary.c5b29ff1.0","@material/mwc-radio":"0.21.0-canary.c5b29ff1.0","@material/mwc-ripple":"0.21.0-canary.c5b29ff1.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.24609b822.0","@material/feature-targeting":"=11.0.0-canary.24609b822.0","@material/mwc-icon":"0.21.0-canary.c5b29ff1.0","@material/mwc-menu":"0.21.0-canary.c5b29ff1.0","@material/ripple":"=11.0.0-canary.24609b822.0","@material/rtl":"=11.0.0-canary.24609b822.0","@material/theme":"=11.0.0-canary.24609b822.0","@material/typography":"=11.0.0-canary.24609b822.0"},"publishConfig":{"access":"public"},"gitHead":"c1604e99ccbc76c92a4371c529c43a4997f78c3e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c1604e99ccbc76c92a4371c529c43a4997f78c3e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.c5b29ff1.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-jsqihkxiwZ/ENoFBnbSh3/ZG7oROarrH6fW2UPgCZTD68HSMQOlas6Rhu+ZjPjlUUo/27j2ocDd4DWqE4xxyNQ==","shasum":"da7cac50a97167c5c44894068a7280e5fb2979e8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.c5b29ff1.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJga03uCRA9TVsSAnZWagAAlJIP/iyRqZwUfrFwyXa6vlsy\n0KCPxX0exfT4Suc3YsNWbrunEcVB2UEU9ufNih4BMqkfMKl3PMd/wvBrpcro\nYK3Neffsty4QFsNDM2BzlEVS3ELnfufERC7bpXNrZG+cMvR2MB3EXBEt7Zvb\nzW000aDpB4hVAVUGOFg/IFifIPPXt4VvN803Jo5PGx+fHuR411T4dhI2ZygY\nWnY3mEdafTI+FBiJn7Ca86Isz62Avp4aMgmBqlrlsvOGmjSGWEGFq3XmMj46\nCaJZUhnh2sFaFeSD4HqkJBaGD3Zh3Abz0fwHY4klsvUR0PVPl3JNPDRCMmxU\ncpQhAzi+OPOfqxtsTnG8WJfNzI2P/lDJSOg8HpWUFSr6GWp9/YryA5EIqjrO\njqW3uI+N+yP5eOVGnoO50+RXoXi98Vj2TW6D2009BQsGIi5fx/dmDwFvIniW\nj0S596D46Mr0LgcKfYpQIBfJuNc4Q+kl07w5NxPwgZG46MmBijZ5j9NUbLzj\neHpiQXLkAla9aJRo2l6gFvNfbCiPejLS6Id7m+vScNPMPtV7T8B5pEmC51bx\n9b+hE83Wqxrnyddnd5Tyw/FLz/umwfK766XhoI8tHEXcB18dU7MnJFcFLDQ+\nsFdyM5vrmDn3Va5aiLSZoEPs+dY9Yr9oxhluvqQ85yVDh5U+s7/PspGqXOiZ\nFQmH\r\n=91Cj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDAG+f1wTcUttLB5XRCJFRCldpDSn8tAdBYeiPieB18fAiEA+4wjIXSfk86GnLkRG5VC5jWDUeWNCZ+rS31Vlta83vk="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.c5b29ff1.0_1617645038222_0.5314790109478078"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.583644a6.0":{"name":"@material/mwc-list","version":"0.21.0-canary.583644a6.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.94f50b260.0","@material/dom":"=11.0.0-canary.94f50b260.0","@material/list":"=11.0.0-canary.94f50b260.0","@material/mwc-base":"0.21.0-canary.583644a6.0","@material/mwc-checkbox":"0.21.0-canary.583644a6.0","@material/mwc-radio":"0.21.0-canary.583644a6.0","@material/mwc-ripple":"0.21.0-canary.583644a6.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.94f50b260.0","@material/feature-targeting":"=11.0.0-canary.94f50b260.0","@material/mwc-icon":"0.21.0-canary.583644a6.0","@material/mwc-menu":"0.21.0-canary.583644a6.0","@material/ripple":"=11.0.0-canary.94f50b260.0","@material/rtl":"=11.0.0-canary.94f50b260.0","@material/theme":"=11.0.0-canary.94f50b260.0","@material/typography":"=11.0.0-canary.94f50b260.0"},"publishConfig":{"access":"public"},"gitHead":"bf2f1c715105004d3849ec66e044434d48e08296","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bf2f1c715105004d3849ec66e044434d48e08296/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.583644a6.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-06hDs0fIKYG2My/gkMHiwMCUqM1ovanT3hYmvWverJ5P9NCsBYaK9fhGUeOtRuy/dSOk1G9OcZr0CiY9UE9cqw==","shasum":"4bf3aec825eab265bb0428b29f1ee1596a8ad5e6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.583644a6.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJga04qCRA9TVsSAnZWagAA734P/3bk6DA1SK5D0SbSif/n\nFQxy9GqaUEEuRVgJuncTHdAO2OyKrylZ96SFhu65FpERIfjmkFB5vXlWb7cb\n66o+uUKAbTZV5PGA7EMz2aJnbvHh1LeEDXGFiwUjlzFN2Y+knQIYY35Et1KW\nLtIhrOkxs+Vbf6fS7t+/KqICkiTpSX45F8I+XKw/7lvaU6Jl4RH29fB3PeVS\nV0vloZRxUT92MPhkwOOlZtFpkKkLmm19KRMhbjS+mA+eJivPrC1CwRt+Sss9\nvTK6Tiu2l/JUKHUo5JXzaobwC/wvyDwyD77Xj39GeCDityF9pu1OOdQe3J/l\nQxmnxGCyUGuMpbZrdX9BOZI1hCuooF/rWIvEB7CEmbB2IUFDeB1JtEhmgUHN\n7dfIO70AJ7AYGc1cRme9uF0pKL84VAq4dPn/Of1TCFcyJVGqXrRoRcYQ4f3V\nIpHRPNErARWWWCUD9aolYSnT2uZrNWnE0KoBD4NqXwL57YDBouJh22x+JMKw\nkCtuVEIoDLPolkh8IDNir88kfnrGU3CZQ2Jz7YdFCiLnTDwMuZRYGY9QIf6z\nQSPnvPeoLRR89/djsx+VUPOqjDnzZ7oYiXaRsWFTHiwKP3kf1SeDIFxosPTQ\nLBcmXH5FvQlkLVocoym/9BD6zgG0c5austBUJJPguSxofPg4ZwMhT507QVDc\nrqZ8\r\n=NyTY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIG+05q5arQYSIZfPUbdGZwsll2Aj97Peek7sSWfRM/vIAiAgXEhVkPebfHN/4iZ8sWMw6brBwwzNkIf+KhWPAyumaA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.583644a6.0_1617645097886_0.6288038107805793"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.02ac1e6b.0":{"name":"@material/mwc-list","version":"0.21.0-canary.02ac1e6b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.15604bd0d.0","@material/dom":"=11.0.0-canary.15604bd0d.0","@material/list":"=11.0.0-canary.15604bd0d.0","@material/mwc-base":"0.21.0-canary.02ac1e6b.0","@material/mwc-checkbox":"0.21.0-canary.02ac1e6b.0","@material/mwc-radio":"0.21.0-canary.02ac1e6b.0","@material/mwc-ripple":"0.21.0-canary.02ac1e6b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.15604bd0d.0","@material/feature-targeting":"=11.0.0-canary.15604bd0d.0","@material/mwc-icon":"0.21.0-canary.02ac1e6b.0","@material/mwc-menu":"0.21.0-canary.02ac1e6b.0","@material/ripple":"=11.0.0-canary.15604bd0d.0","@material/rtl":"=11.0.0-canary.15604bd0d.0","@material/theme":"=11.0.0-canary.15604bd0d.0","@material/typography":"=11.0.0-canary.15604bd0d.0"},"publishConfig":{"access":"public"},"gitHead":"c6e525b215b6043eb042d3feb1f6066bd536bd94","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6e525b215b6043eb042d3feb1f6066bd536bd94/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.02ac1e6b.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-lr7eeO3mqtuWfcRWiRTKk0IdSqEiOwrNAdSQK7dvvSZEnnMBTutqynHlHV8S1Lc12u480elk4xxikmABArjJRQ==","shasum":"2f41bd1e93704fa883f3904099e1509a42782530","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.02ac1e6b.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbKpPCRA9TVsSAnZWagAAoFwP/RgRzYj/NzKV8vcWOcqw\nUEZRKdpSDcEeAagnf/ZSoDUsn78TG9VX06RlRlKy/ZqPyiXE8fyHBd683YuI\npzaWQVu1HC1qfzLemvWTK+jjdPDCV8Kqiaqgn/d2bJw5ansqZuJiPUvc+Odc\nvOv7GF6vbpXdqPE3InpGB0DobnSxjYif/+FA9INJCkqT3c7TP17O/PVU7MQT\nHISJ+e5PfBKLt3Y7JC7hC86uylz1Wb1E4rkP9E0JTld/xCuroWTy35w9yEK4\nWoY0xQpNzwOyr+qSbjy2tOSD+PRfuAYG2sbYLkJPgqa+CmHJRQvJaAtmMj0J\nKq8o5+rwwtA5n1D6pSkkP70rJR58gEbhj6KSarlq3t/N/BOXzvORnyj0zaMU\nDthg4tFSt9iv/fnZZ2VCJtOqR/E19YQbrqk1WVeYvjQ9/fn/KEjdT28PYfdm\n1SnrxU6KsVmvGXt5hR+QqAx354sP3MgBOAu1meUGEQQLHmJvHeBIchkfsrj+\ncgGAlxWD84fOny4W3ZqCW2VgKWHIqYQONicN1Ejdff07ohZwkBbjOunuKtum\n0R36tnWpLKJdNm9AUvxZl1mFQONt91Cy3GdoTjwjMiDrhzpXavP/J/P0jWfc\nRMUQqv2ft+nW9Di6DN3bEE494zGbH6XOzXym7BS5jPl0oJK6lu5NjQBfhO93\ngqAS\r\n=+z6w\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBZs20GpirahG2IU96oCLcCKR6ANB8IFymOYCmKAQvrkAiEA48OO75qLjU6qy98xO4/6Z6cG3Z0PSQSw/2d8npBcgho="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.02ac1e6b.0_1617734223529_0.5698955074189955"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.5ac5856e.0":{"name":"@material/mwc-list","version":"0.21.0-canary.5ac5856e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.15604bd0d.0","@material/dom":"=11.0.0-canary.15604bd0d.0","@material/list":"=11.0.0-canary.15604bd0d.0","@material/mwc-base":"0.21.0-canary.5ac5856e.0","@material/mwc-checkbox":"0.21.0-canary.5ac5856e.0","@material/mwc-radio":"0.21.0-canary.5ac5856e.0","@material/mwc-ripple":"0.21.0-canary.5ac5856e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.15604bd0d.0","@material/feature-targeting":"=11.0.0-canary.15604bd0d.0","@material/mwc-icon":"0.21.0-canary.5ac5856e.0","@material/mwc-menu":"0.21.0-canary.5ac5856e.0","@material/ripple":"=11.0.0-canary.15604bd0d.0","@material/rtl":"=11.0.0-canary.15604bd0d.0","@material/theme":"=11.0.0-canary.15604bd0d.0","@material/typography":"=11.0.0-canary.15604bd0d.0"},"publishConfig":{"access":"public"},"gitHead":"66f695ff77b118469a93aac22c76e5e558c242a7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f695ff77b118469a93aac22c76e5e558c242a7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.5ac5856e.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-Q0QMiddsBnfF6IjTKSRwe6bHo/8t+wEB/9uojcnOc5+tmieV8ZyaDyeMWR5O60Jy8jMSgWBdkxbBKg3Vhk4wAA==","shasum":"5b497f11c4011ec7cb168fd6e95d72da5e06a38c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.5ac5856e.0.tgz","fileCount":45,"unpackedSize":250501,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbKvLCRA9TVsSAnZWagAAQGcP/3PZx0YEVS18qRLSiV9x\nw5zhwzSEBnnWe+wiqDQSPChlITlw+JJYNjUCpZ/CYluWliqvfct+EDHUlzxl\nBuZrpHSniQjYuDf6sWDXtC7OvGoYvDpGlvQZCAtIh5CPM5JfoFoJyeuCPiM5\njDWFnirlM7EUD1jpw4puktxB0ktWlEZz6IPj7l1ro/I7bUeRq4lBBWBrSJZR\n44vCuOYNGcfQXMbDKWNDmCwRfxZiXOvMbX5nsojSUGCZkMjFMFEVrF5dJMxF\nLx9Xt854fo/aeA5OFZXosjFdMpYSHgsMFXwQPE1J3nwNMYZk7XUKFz9gcdDh\nbUg7x5iH4hTBGOGRYGoTO/QmvHexYcIKJA0biEWg57OZkO34pIAhLl8Gd0Vv\nbx3U9scZ42i+idas7FnUj85mHGcwVzYPwA0sw3Ox/kf0ByaSbeg3tU6gLmhf\nCfkwGr5wGG7ZvJVRMF90iHrzLS3yLElHrXftIAgSkT58Y9nnORopBwNWCUCq\nzB+uc7oV5CwbBEgqJ5ooCXpIYKndkmdrEU/MXDdcfPJJfabge2a2TzPnP7P5\nbAJxdKzpEAQ6xkpmOmWTXJD4A8KpKnd6Ra9YgXsv+zvogKjqsHuOpy0ZBYp4\nKUdNGoEZ1owHFe31Y3/BViXe4Boff+jZMSrvRm3AUlsBsIJm/VGlmkSJv/B7\n+c7d\r\n=5kAm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCL2JPbQPQjKxDU75XhSOf3B1HsI0/REjfC47OuItaVZwIgExm7W8baScx4bgoK3bHGX6vLGGzszEjt5Z4ldmlv4XU="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.5ac5856e.0_1617734602574_0.7943367514749557"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.bb23dbc4.0":{"name":"@material/mwc-list","version":"0.21.0-canary.bb23dbc4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.15604bd0d.0","@material/dom":"=11.0.0-canary.15604bd0d.0","@material/list":"=11.0.0-canary.15604bd0d.0","@material/mwc-base":"0.21.0-canary.bb23dbc4.0","@material/mwc-checkbox":"0.21.0-canary.bb23dbc4.0","@material/mwc-radio":"0.21.0-canary.bb23dbc4.0","@material/mwc-ripple":"0.21.0-canary.bb23dbc4.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.15604bd0d.0","@material/feature-targeting":"=11.0.0-canary.15604bd0d.0","@material/mwc-icon":"0.21.0-canary.bb23dbc4.0","@material/mwc-menu":"0.21.0-canary.bb23dbc4.0","@material/ripple":"=11.0.0-canary.15604bd0d.0","@material/rtl":"=11.0.0-canary.15604bd0d.0","@material/theme":"=11.0.0-canary.15604bd0d.0","@material/typography":"=11.0.0-canary.15604bd0d.0"},"publishConfig":{"access":"public"},"gitHead":"42e5f906ec61897cd0de7e0e19e686d807408d70","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/42e5f906ec61897cd0de7e0e19e686d807408d70/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.bb23dbc4.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-Fof7iAJ3ir+YUdgNlnzRMddvAQi91xh9T0vhuYp57L4DSnGYRc/FERQ55f4ZBkRNnLGH4Durx9O1p5rRRzcSNw==","shasum":"b167414ccac518a5967be311dd5f616909cbbeec","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.bb23dbc4.0.tgz","fileCount":45,"unpackedSize":250435,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgbiMLCRA9TVsSAnZWagAAvK8P/3lvmWlizYHp7pr3h42k\nn6yNEusrLq5z64UhnTEHR1CDrv7nxDz4hSN+TJFmV4DMGJldk25zj0fJgob2\nwFA7Kemjv7bLM/QF+Imc8pmybqu6iUwvYvGhukXrGGgJm5RZZc+x2jfL3659\n/hafK2De4oGIdHUMo5eUgQXvicEYBpKj09IpcgQwiXhHN7K53pe9JugU9kl/\nmaOBpdG1pQTqwtKH3FcJGomylvsn1PMPzxaiPdycIDS9/xpNxi8qjJLlKOQZ\n5Zne5jKKffJBeZybDTbTZr27zRDrvBg5QzjwHXZ+k62MarRYpGfS7v4WRrEf\nh8Nu5uWckPMa29a1HZmNbRmflQ88RQ4HclJ/iRiGOAzjqakVQSpo0WtmlQqm\nxNGp29pPqYmgVoD5bqvC2k/CXLEUDszrZGA02rvoUJT94mU041vRc2z2fD36\ng9V4bxOt1BOMIsZeR5LQrmj9swb8W5NFXghJFoUXttNreHlUc8p9SrDssEXE\ndz9mQA9m81VKV520E6YI2Pl5p+t43BwwapTgNaGlHdh1Nny5REgsKiNqmsgL\nBjwQOBPFCrZIjFsdeG3NFLNqYouNr5lsQ4MS5wQVGGVLSwBe5zkSxVbOFOTS\n/RYo/opZ02Avh8DTOoBTKpIAsdXd1tAY3zF1IG6yyBHCjX1epq5xb47PFjGv\n6FO5\r\n=rjbG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6UVlEK5FaRzT19tpioRnjNMai/XZU7sf1ASJ5kZSRwgIhALqmQXNaEmvjJhgNVU9HzwKJ9SUy4v5t3DE1f0Et/3zg"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.bb23dbc4.0_1617830667473_0.5708802182829997"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.e539904c.0":{"name":"@material/mwc-list","version":"0.21.0-canary.e539904c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.c91e8d141.0","@material/dom":"=11.0.0-canary.c91e8d141.0","@material/list":"=11.0.0-canary.c91e8d141.0","@material/mwc-base":"0.21.0-canary.e539904c.0","@material/mwc-checkbox":"0.21.0-canary.e539904c.0","@material/mwc-radio":"0.21.0-canary.e539904c.0","@material/mwc-ripple":"0.21.0-canary.e539904c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.c91e8d141.0","@material/feature-targeting":"=11.0.0-canary.c91e8d141.0","@material/mwc-icon":"0.21.0-canary.e539904c.0","@material/mwc-menu":"0.21.0-canary.e539904c.0","@material/ripple":"=11.0.0-canary.c91e8d141.0","@material/rtl":"=11.0.0-canary.c91e8d141.0","@material/theme":"=11.0.0-canary.c91e8d141.0","@material/typography":"=11.0.0-canary.c91e8d141.0"},"publishConfig":{"access":"public"},"gitHead":"0522583b3f6a950dde45ae308718f06d90d40a84","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0522583b3f6a950dde45ae308718f06d90d40a84/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.e539904c.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-43qwTQsWThdsha3RDuevCYCOEck7ODh5+S1jcLt6rjL0CDGtsCu+eqYM8qFsZY+bxnIXWgmCrfuELRBHQbiydA==","shasum":"61dcb22645094de3069f7c8ecb5ca798e7328fb3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.e539904c.0.tgz","fileCount":45,"unpackedSize":250435,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgb0U5CRA9TVsSAnZWagAAMeUP/AsQv2lX77TFY6W8qcmC\n140PHelYowY6M7QljHoxTZJ1Rav5JJgMDN4uUL8d3Am+gXdbbm082/kZTmEN\nh874h6POtZcgZa8f3WG+iiP5iBunuxlm1bqIuX2e/wxwwQP0ANug5kXGo8gh\nTzhH1yexEyZ/U3s1uBm9rntnL21Ed3dOAE6aJVBsxjomzYAkMIHhj/w5wTDi\n4IS2C5Sm6/Zt3hJ1OGNfJZjocPD0NEfVNeeU/U7pLSfXPI4reT6A+t/HvrTY\nMdiKEyUPRFo/qNGlEPtSjLUVqqrXhlapmTiKJ6IPa9+6YzC673y7IOTriER6\nNZ8WlWCQwiO4OLP0rFNf37AO6L9iJskFXP4MpEHsQLZGO1Ma9Xtqnh9cBhqq\nED9fASgX7i4RWig0rQn87W3SIZEevU5bxh7AZN8oBl51MMOddpfdUqP5IyTa\nX1tPQSG7xna8nnz7qFnjyM4RBf+DiUkGb4rzevqCOrGvProN885yoWvRwzkr\nqTfDy67QhcSEh7jmvkjXYg5AHIVDIHmv0MwygkQdjEyr3a0Pd56RlBr5hXTq\nX4qwSK7CnkCV1iqwTadgaZRhO3LJ5tg2giW0upFRHCB+1Rl1i1qj439EifML\nRDAfuOuHft2uMkRTAKVU4ks8RKjy9YXO4a2YuNZXW8RtRQtkuIM0BvWLQVH/\nt2bu\r\n=l5sR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4XrNY/9Qjm67gs21cxISbtfmtCh2IPyXpMrwOhqagOQIgejdxR2YYcXM1eAeM/h5qTM+H/y8BalkPrMzAQdAifrc="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.e539904c.0_1617904953036_0.9254940108483412"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.a93ae333.0":{"name":"@material/mwc-list","version":"0.21.0-canary.a93ae333.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.b2fa996a1.0","@material/dom":"=11.0.0-canary.b2fa996a1.0","@material/list":"=11.0.0-canary.b2fa996a1.0","@material/mwc-base":"0.21.0-canary.a93ae333.0","@material/mwc-checkbox":"0.21.0-canary.a93ae333.0","@material/mwc-radio":"0.21.0-canary.a93ae333.0","@material/mwc-ripple":"0.21.0-canary.a93ae333.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.b2fa996a1.0","@material/feature-targeting":"=11.0.0-canary.b2fa996a1.0","@material/mwc-icon":"0.21.0-canary.a93ae333.0","@material/mwc-menu":"0.21.0-canary.a93ae333.0","@material/ripple":"=11.0.0-canary.b2fa996a1.0","@material/rtl":"=11.0.0-canary.b2fa996a1.0","@material/theme":"=11.0.0-canary.b2fa996a1.0","@material/typography":"=11.0.0-canary.b2fa996a1.0"},"publishConfig":{"access":"public"},"gitHead":"31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/31a1d0d94dbc7ba9d8611ebd62d41024f6fa88bb/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.a93ae333.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-PbyTuYl2uIF/Euw6FBt9OVzKUJsRZ11+n9bMHtXNyn9zh4QzbiABjlfqEIBgNcwhmC0PqWCib/1ETtsu3H66sQ==","shasum":"85c580a431709ed0fd4bd9d749eec447bf435efa","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.a93ae333.0.tgz","fileCount":45,"unpackedSize":250435,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgcLUfCRA9TVsSAnZWagAA6TkP/0Q7p+gOqXaWT9KR1A/p\n4zBfTdxaK2LfoBL88DfQL3sG2L4vEfpyImw8KjGVCE6nFma1Bs4C/ylgr1DZ\nhB6DufYMonfPi5LYDp6Dl89gUJxi6Mnl4zs8wQI0j4MXCiPY/s01cHBJwoZS\no2isRcAJkxyUSrJbb/d/ryPz/tzPruoEPwjCFrX1ZDjBBldNMGKhsRPXV0wm\nLvzt/SfqUj3dmsEfF/k1j3nX1jMeSIy0EvE2c7gXl2eAJsoDTSDEZfN2XSUo\n6+Xojhq0E8KBqXA3GUGxhozYklHRZ6wrkDgxG56zNZvQ4mmedd4wVz5IaYh5\nt8rVM3ceyKrfpP+UI9WQ7W1u2/bU0A52+fWoPWE1hC5p8Ci0nMW2vSXqFg7y\nL9eXS7fSGaw5t1N8j3SLL2q1W/dr8CpjGaekv0r95qVwR1xyPDhTql9GLg4f\n52YwYDO+X7CUdar0zrJfeJqT70cYrJ4swkUnbuuY3bh+x8HXD5RlDICD2ay3\nkfwZg6SD4tQ9RB5qQNP0/MgeXEP3hZVwJ5HfMw1zufl+LN4YQXeb/iy2EyEy\nDGH5aADxPreBuIICen2Mi3Nj7tMvlaDoQjU5sVSCtmmBs0r7At5hOhT7Gcj6\nOOce0IQLgMUBdhGpY0IJJ+uRxg+OOcF67bx9U+lF4dKLy0wScNuavSVixbdo\n4zeR\r\n=N0nB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHr/U/dm/KoO0SF2PBzT1Q6QKv1B193DjV3wICRLJXJEAiBuEDGAWGLbkCw/iEAR2WXk6glgOYzqHKl3Uo1nyqvfkQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.a93ae333.0_1617999133496_0.6285862190274294"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.e142c144.0":{"name":"@material/mwc-list","version":"0.21.0-canary.e142c144.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.b2fa996a1.0","@material/dom":"=11.0.0-canary.b2fa996a1.0","@material/list":"=11.0.0-canary.b2fa996a1.0","@material/mwc-base":"0.21.0-canary.e142c144.0","@material/mwc-checkbox":"0.21.0-canary.e142c144.0","@material/mwc-radio":"0.21.0-canary.e142c144.0","@material/mwc-ripple":"0.21.0-canary.e142c144.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.b2fa996a1.0","@material/feature-targeting":"=11.0.0-canary.b2fa996a1.0","@material/mwc-icon":"0.21.0-canary.e142c144.0","@material/mwc-menu":"0.21.0-canary.e142c144.0","@material/ripple":"=11.0.0-canary.b2fa996a1.0","@material/rtl":"=11.0.0-canary.b2fa996a1.0","@material/theme":"=11.0.0-canary.b2fa996a1.0","@material/typography":"=11.0.0-canary.b2fa996a1.0"},"publishConfig":{"access":"public"},"gitHead":"135f2f0e24347fef74904a437124ccf8978e20b3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/135f2f0e24347fef74904a437124ccf8978e20b3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.e142c144.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-SaM27uuHV7ghTBkwcGwlqbg4j940az+3YYlWI6Qp6H8lCvi8eNRHnj9eATXZfOIwGmV+7jNKmYX4aZQ3hGqDlg==","shasum":"706a957cbaf0765144a55e11953a4ecc42fcc573","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.e142c144.0.tgz","fileCount":45,"unpackedSize":250435,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdF5gCRA9TVsSAnZWagAAPLEP/20RL4tDp1PV3ih5pSaL\niHsj//Tv9geRpNLq6mGRzNIFXSfepbxDBPqru2UyBquYnMUoyZ1k6ar1Tmpq\nHyqyRKpM1WoPRq33N9RTFKD3yJhJ/iSSB/6qeuKGaHGkFxXHjffuuN4I+2OT\nES18S8+F9WvN+HDeMnnTOoYSplax0v76mvX4VRTUnCLE5F73ueIh4p7s5x73\ngxShmMqvBkS/OGYfzvFyqyrmOv/DeQ92WkSB7VWeE9N5SPch+McJJXn96yXF\nYh1AO8d1CoESSsguAuVcOEuMCo0id8G4T4Q5TJvwwlNncMZvv9XR/rvQ4VIw\nXeRDhPlXq58D6Lr3AoucOmQDVYb96gKEZbmvaVDbpoixaJikhaqmfjoL3Fz4\n7FEg2XXAMYCBySbAOcR14Y8g80J+T6MlFmUUk4ltY36tTavUvj7OP7Rr3PyD\nm1rOHkRLP3h4kXvWXLYNGABT0lqyXHb8g/dqoO5Yov6vUn8uYpIEdDOW+MLj\ngH0hNyl073evYVUq6Uo0C8TUksVW0TTqlddKlOIsCVKWLXqNM6W8mYxFFqPV\nN7luFaBxGtRu/ftgwXvBbKaDHbJFeWhPMNX69BPCjfcNP5aHtSei2ajJhEvL\naJzJGAii4f8BfUeKVqipXzQ6j2zGD9c90BXOhRsQ6hgIh6CfVksTLePIv/pc\nSNht\r\n=mOnn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICSpRvwcqT1nMqDNc0BpwwiBo+8iV+Z1DAp/oq4klbOQAiAknnn+07JxdZyGmAFlXlPtWk9whttppeauOsrcKtNrag=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.e142c144.0_1618239072407_0.8358851204712101"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.382d7eb0.0":{"name":"@material/mwc-list","version":"0.21.0-canary.382d7eb0.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.b2fa996a1.0","@material/dom":"=11.0.0-canary.b2fa996a1.0","@material/list":"=11.0.0-canary.b2fa996a1.0","@material/mwc-base":"0.21.0-canary.382d7eb0.0","@material/mwc-checkbox":"0.21.0-canary.382d7eb0.0","@material/mwc-radio":"0.21.0-canary.382d7eb0.0","@material/mwc-ripple":"0.21.0-canary.382d7eb0.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.b2fa996a1.0","@material/feature-targeting":"=11.0.0-canary.b2fa996a1.0","@material/mwc-icon":"0.21.0-canary.382d7eb0.0","@material/mwc-menu":"0.21.0-canary.382d7eb0.0","@material/ripple":"=11.0.0-canary.b2fa996a1.0","@material/rtl":"=11.0.0-canary.b2fa996a1.0","@material/theme":"=11.0.0-canary.b2fa996a1.0","@material/typography":"=11.0.0-canary.b2fa996a1.0"},"publishConfig":{"access":"public"},"gitHead":"22f558ec852007036c1b01f2d052ff4512cfb420","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/22f558ec852007036c1b01f2d052ff4512cfb420/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.382d7eb0.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-izNaWt+pOrxPP6in91ppL+uSCt7dr2hD/JhxGawYVSXY6DzG9tqNz7O1Oc6XEnyrP0rrAXhpAclxL2RFESKHZw==","shasum":"40f5b9a69ed5174eca7ac42959a6a4ecc1f1b709","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.382d7eb0.0.tgz","fileCount":45,"unpackedSize":250435,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdMRFCRA9TVsSAnZWagAAxpAQAJT+ClV/MtR+LkXj4QMC\n0xxR716BS3qynLw1vUcjtsTGDtxsv42zcSQ37ALBgJbUPHgPI3JIIaT38Zrz\nc5bov4wJAse6simACEvnzU+ohx6MLcAI22eEQvu18CitzOS0TxU2B9hDznV0\nBNWX38znkjIG8S/CFXuP4q55y/tRiXI3hIzWKwhJbi60ktuHsioHAw0mTbK0\nIAeWvwmrxjfyeCMlengHxmADuTZKZkCi0UWjB6aYdTt0NRdVONA6TeIeztfO\nMUG2knsJOWREvnoB+BkBH57jufS7a4ulkEAhGfAIEk8EMoCRfw3+9QFPCiUs\nm7mQAPXViBJGwccNYhvuuluijehiZeXs9ntUolMO2oNd65NlkLbd9CA0jZr7\n5qGUJP0zxJN45ewJmpWMMqRvL5mpp/cXfZJXxg/QWFlc8r5x9ZLVdvhJsY5G\noiEBNcd4qOcW46iqs2jbd2mlaPiHtgCKq9fKRBLc65rVx4i606a4g07hlcVk\nVw1+XSV0dD+h+9NkJPZ7XbQwsZ1YpxXIJfdYHn8Qsd/YGmCDuWuKWdpMFW1E\n6IHtyDDOCRhYtNHlxhkVEDTd81XTdDX9iBZX6MMXqtHugVGcTyTy4v0sCpvZ\n2P7Twt6hprKbHero4u7+eRQedQ8e8+B2A99exR0ZIgPlIkmrdWHaTZ+xNEt2\n3bDr\r\n=M5SR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyhQFspNzcsGEIbU2NsLu1Pde/hYaxViVaWgbMFSQczwIhAKVek9ihm1kNpn4O4hGPqNcZqGdww/RzTa79+DTB2Yvv"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.382d7eb0.0_1618265157223_0.4328731032395934"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.b16c7885.0":{"name":"@material/mwc-list","version":"0.21.0-canary.b16c7885.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.352b295c1.0","@material/dom":"=11.0.0-canary.352b295c1.0","@material/list":"=11.0.0-canary.352b295c1.0","@material/mwc-base":"0.21.0-canary.b16c7885.0","@material/mwc-checkbox":"0.21.0-canary.b16c7885.0","@material/mwc-radio":"0.21.0-canary.b16c7885.0","@material/mwc-ripple":"0.21.0-canary.b16c7885.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.352b295c1.0","@material/feature-targeting":"=11.0.0-canary.352b295c1.0","@material/mwc-icon":"0.21.0-canary.b16c7885.0","@material/mwc-menu":"0.21.0-canary.b16c7885.0","@material/ripple":"=11.0.0-canary.352b295c1.0","@material/rtl":"=11.0.0-canary.352b295c1.0","@material/theme":"=11.0.0-canary.352b295c1.0","@material/typography":"=11.0.0-canary.352b295c1.0"},"publishConfig":{"access":"public"},"gitHead":"effabeb19d8128aa03c36be651c6b4eb98d15e9a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/effabeb19d8128aa03c36be651c6b4eb98d15e9a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.b16c7885.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-iHnZPvDggkRUZpBCMxAI76JRH6m7RvlvIiCgkZrs37V0k0rpXz8fIGc4VaNqp/76AVllLLorJa0C0mTutaM+Wg==","shasum":"610a9ae28f762d09488fc7fc7220e555016e85fe","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.b16c7885.0.tgz","fileCount":45,"unpackedSize":250435,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgdMwsCRA9TVsSAnZWagAATEsP/0o7oFEg/htea/KnHzxZ\na/cVYEfqJOcJ+AJIAVwsfczmFn57xtYi6JOZ+m8PMWjcJgd8zn2oeg00D7y6\njA1K+oU8BrzUKG1nPz0kvdhy5C4jAiWaLJAK86MameBgJVZ8aL4wHZWgTAb/\n39TgYCXtCZ9PizkGx3koOI9LNAqKPADEpzeQm8Ils13jINQ2byuxpgAwm8v2\nyUz59VZn/KEKVmGSReSKQSbaOm7GCRXD6DN3brmKw/jAENkIGdJDkjlsHjXj\nRt/c1FBow5H/umzgm7PfJWFwmRD3ZD2+5ExvdJUMry7+IPELc3ZNyFWg5WeV\nzewwixuRwv0yaOUKYWmXq8Aj3HIN1M83xDwofDH7VILv9n+X4jUrm6xArFQr\nIa9/HixxvnwIXZIbAIFPugPDBa7Ak7xIOQQ3I9b9wN4cmxTkrDovA/GcDqox\nvjkRjeW9scOOXEdh1S62FR3JxpOOoEUSGFwqK0KJ6AvTgWaA+7NulQkBC+Ln\nfy8fVnPlGvHw99qofXcZs3d4a26SXMg6FLzuxS+XHH9EYqJ/i7Kw8TdNA3tG\niY4RY+pIefRZ5beFcJn7T5CyIqKlh99cby/3zeKnXFXgPT2AtPAvgkNk0ICk\nVnxvCevmSZir5ebrreONbLd/C21Fl11SFuCvVilyiZ6SofdYIO2sfRTUcwJE\nBVDI\r\n=YFG3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDqIRGV1iA6DFgUfh7f8zLBymwWlL8nGTY4xh9WoOGx7AIhAPEUzUH55xCdlBuvtYyj/nS7+jyxP3HXZz83LtOv84+B"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.b16c7885.0_1618267180412_0.48662168083900714"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.0e92782b.0":{"name":"@material/mwc-list","version":"0.21.0-canary.0e92782b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.352b295c1.0","@material/dom":"=11.0.0-canary.352b295c1.0","@material/list":"=11.0.0-canary.352b295c1.0","@material/mwc-base":"0.21.0-canary.0e92782b.0","@material/mwc-checkbox":"0.21.0-canary.0e92782b.0","@material/mwc-radio":"0.21.0-canary.0e92782b.0","@material/mwc-ripple":"0.21.0-canary.0e92782b.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.352b295c1.0","@material/feature-targeting":"=11.0.0-canary.352b295c1.0","@material/mwc-icon":"0.21.0-canary.0e92782b.0","@material/mwc-menu":"0.21.0-canary.0e92782b.0","@material/ripple":"=11.0.0-canary.352b295c1.0","@material/rtl":"=11.0.0-canary.352b295c1.0","@material/theme":"=11.0.0-canary.352b295c1.0","@material/typography":"=11.0.0-canary.352b295c1.0"},"publishConfig":{"access":"public"},"gitHead":"7c46ee6728f96c896cbcb981be39309e7fd3f60b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c46ee6728f96c896cbcb981be39309e7fd3f60b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.0e92782b.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-qmboM4Q7FzhlQeVFtdlhnH/jQTkkEqdtPK8MoI810+XoCzq1gJhj/eIiEm+Eydy4wkMd30HCrjmuUk/wqdS36w==","shasum":"c2c1cd23911dbd0ed906eb3a50ed328c290bcadb","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.0e92782b.0.tgz","fileCount":45,"unpackedSize":250113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgda3TCRA9TVsSAnZWagAABjsP/i0NLekO7fvwk0JfDQE4\nNykmDU3Bp29oonuQQkhJoJdnk6th6ZSt0C6u34KsjyfjPhdLeWDoDNYfK1TE\nEy4/zYR+0jorjh7McUxV82BLE2RI+JPYOVpYBXsoHqoFpeyxI3TPpZiYY54U\n9WcgVzKRkjBi2DsoOr0rG9ycpvVaAfzKQGun+uq9uUYYEH15u4T5OEZayfPV\n+DVIUzUDJttlW8Jf9bgBE1f58sYD20qMh18Dst/aA9FkWc2e3fAK+Y0Adsp5\nEdMJo6jHrDg9Chad48hONRs5yu6GlUROPSN19OORE6HPcRP2J22hH7oICQSf\n/LNj5aWqZo+klDcnkkcGO5HjVFyQ4IpArX4ZmHlAVcNEdkeogVq2x8JX4JaI\ntoP/Hca3k8F6Vd1c231umVsR9BD9GfP57163TNvtHQCRrx04OyZOdVClh5j3\ng9TdDTqELhrNpY1tlim+YJKXq0ZCWSlDY6M+AlhCAsWvpeT2k2b/043wV4ET\nTeI2T9LjHjnxlAD/YbZ81tLvMCkTtUWgNfLUItw8ccX2zBHH1uRZjqARI4j8\nGg+O5zsbX1GV+U0dKQSGRTe4i8Hz6IJZpEYi+myqRgAzgqRQ52aCGCSV8iLb\n3pFqrw/0ZvkqsJgqAbBFWAP4zayzEri8FEsJEDNlS0JTq+396whDZgNMvPsl\nrWNh\r\n=2ZDh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDXD3DYXZxAFYW1Tfj6qRNDg6/bKX+jjRUJQ6GQuwKauAIhAK6FVcPeuZjRhrLu1OYXg/fwq98LfjKd46QW+FTSf2zP"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.0e92782b.0_1618324947161_0.7115314758558136"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.70b3a072.0":{"name":"@material/mwc-list","version":"0.21.0-canary.70b3a072.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.352b295c1.0","@material/dom":"=11.0.0-canary.352b295c1.0","@material/list":"=11.0.0-canary.352b295c1.0","@material/mwc-base":"0.21.0-canary.70b3a072.0","@material/mwc-checkbox":"0.21.0-canary.70b3a072.0","@material/mwc-radio":"0.21.0-canary.70b3a072.0","@material/mwc-ripple":"0.21.0-canary.70b3a072.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.352b295c1.0","@material/feature-targeting":"=11.0.0-canary.352b295c1.0","@material/mwc-icon":"0.21.0-canary.70b3a072.0","@material/mwc-menu":"0.21.0-canary.70b3a072.0","@material/ripple":"=11.0.0-canary.352b295c1.0","@material/rtl":"=11.0.0-canary.352b295c1.0","@material/theme":"=11.0.0-canary.352b295c1.0","@material/typography":"=11.0.0-canary.352b295c1.0"},"publishConfig":{"access":"public"},"gitHead":"12958287de673f6ce0eb511950c61be3d1a28235","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/12958287de673f6ce0eb511950c61be3d1a28235/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.70b3a072.0","_nodeVersion":"10.24.0","_npmVersion":"lerna/3.22.1/node@v10.24.0+x64 (linux)","dist":{"integrity":"sha512-tuww1bGO3v6QaOz572MaOSmg8yyOVNKitgez8y7f83oBssV7tTTikQUQyjcpx6wxXKyJJtMoNVEPtBxYKDTs8A==","shasum":"a40da995d1ca98ab3e27c942516681218b69e284","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.70b3a072.0.tgz","fileCount":45,"unpackedSize":250113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgd2wqCRA9TVsSAnZWagAAcTgP/2nVthYi46JxzbfcINeP\n8ICzERpu9kf1NqTOx6W6USnckwpPvcfYRyoWXjZS781l4VQcJpGZi7ZcK6wq\nYLv8Ygmhbj9URNvRjoZkI2hZ+aMpkzrEr+rOQqCpqZrm1aXM/H0T7C3AImyR\nlCDd2lRHJzNeVxdQ8/821gMbNJTZxpP44kBlRMTMnhF99m9GWvW4gWzX4Lkb\nE5ppWwxdOaHK65jidlhidUBEwlCAAvnFFquyQAw62alhsgo7YK1Dq6b1fPhK\nW6zs0szqOeSsAcf5xudycrdYN9bDqZqEWD6Ak2V+VxF22ROdD3BE2EjYArER\nQVq46x7PsaQyy3aG9LBlbRa7202enwC00GWOzkHXqVmcNuAw4CmMY76ffGY4\nGvFvicPKQnA3VOyICxy+QgJFzgAWChMm/Aj5DDDorCtSSr66jB4Hib0xfzwX\na0vm0FqIzIbBh8Rj87L++asdGQxv+pELk3FiEpEYoscbY+Xp9qvO6BdVxdlM\nBCwZ2DI0+CPsu9zBuLpHUVy7dzJZoDORRaw9axUQoKH4NkF8giQKeIPSqyKC\ntC+Xw257A/pRx2lKH1BUMsUCJQ1enyut9Ha/l/jf9NUrj/UBLRXuyvo+bYM8\nhuNLDYrKztbMg62TG2EAOsHqY7pylCfwVu3IDX0YSHKBROgvouR6RHYFXBG5\n3Xx9\r\n=YPfI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+JhHJSlkxpT+n2Z45b1gXlDkhOaUYGKj3tA1VUIIq1QIhALLBVUR404xI6WhSMx12U5517cPaEMZfQX+AWoR3LQXV"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.70b3a072.0_1618439209606_0.248503855669562"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.ff79b092.0":{"name":"@material/mwc-list","version":"0.21.0-canary.ff79b092.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.3793a3143.0","@material/dom":"=11.0.0-canary.3793a3143.0","@material/list":"=11.0.0-canary.3793a3143.0","@material/mwc-base":"0.21.0-canary.ff79b092.0","@material/mwc-checkbox":"0.21.0-canary.ff79b092.0","@material/mwc-radio":"0.21.0-canary.ff79b092.0","@material/mwc-ripple":"0.21.0-canary.ff79b092.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.3793a3143.0","@material/feature-targeting":"=11.0.0-canary.3793a3143.0","@material/mwc-icon":"0.21.0-canary.ff79b092.0","@material/mwc-menu":"0.21.0-canary.ff79b092.0","@material/ripple":"=11.0.0-canary.3793a3143.0","@material/rtl":"=11.0.0-canary.3793a3143.0","@material/theme":"=11.0.0-canary.3793a3143.0","@material/typography":"=11.0.0-canary.3793a3143.0"},"publishConfig":{"access":"public"},"gitHead":"88513d2e247534891581014622ab048f4f2c52cf","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/88513d2e247534891581014622ab048f4f2c52cf/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.ff79b092.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-q70Bx+Ly99KoI8WAS9PqsjFCsFzLFgO1GUtBPRTb6uKF2wD2/zHmORkZIspwIy2aNdcoHx3P2nuxGJP9ZjFfyA==","shasum":"144af3ff88dfa17ff25d35f4438eac18a6576f2b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.ff79b092.0.tgz","fileCount":45,"unpackedSize":250113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeI1SCRA9TVsSAnZWagAAyAoP/iuysr4IUGexHVyEnOEW\nkQ3dNA5IqY6Rq6TAj2FxhXEDFBvOiUpxiEG5jbJyNmIui3UVBDD8vhA/8Myn\nWrplNv948GiEj/R62cuR2wwIFMW9zrj6NpgQCpMfGMygqV2qB9ErcOLNfKSG\nEXFglPlE0OBIOe0DE63AoXrz9VM7pZDfamZdua/8U3nARfsqBPBabLE6Dm8t\n4EFXRHCYiW4sAACUJIw+90ELo+PhKAphk4V43z9zHYMMrBJr0PSGy0qCXbVm\nEfwEQ8zt6CGktB3ovHpf4PuecjuZvV03msT3/QA21FffwyCMksxfwHydIRY8\nmGkKEzpM+vcNkWc28FE1iOMyu7IebvmTQGUxIaIAtUqw/qchQcld5Rj/Csgo\nd2y1V3vax5w4cP1ysgpGcYJy9BmHfGIJp81Xm+hG/BWtxSCgYF1uN3CIgFoh\nCdc/Yd0s/wckt9UfzcyjoNRn3hkGNuOcPhRag2onBA8ykBIaS9WJPr+j+Cja\nflqxpiwkMg7utKJoYsLhN2w3lTheP5KJZvvkLCkuBdeP+jzVZTiXCpYncrQB\nuDHfWf/nZuFMFiKTlgzQ82GPMz9HUfr9fkxA6OrgWstdRNUvpUrIzsdVzkF3\nabsJdjJdf/soM/H/br+pD5YY2JfmGqBHQZwy6HXOum4sPVmh6c1NgwBqsmKq\nj0d3\r\n=AUnz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvV8aizODeyIk6Pw+D6Bjs8nl3qxhE2XUY4Pcx9muadwIgczvxEGH64/C8Es8GigRr0iFJG0Mg+jN4zmYnrH45oX8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.ff79b092.0_1618513234161_0.7219415354630234"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.f35b2fd7.0":{"name":"@material/mwc-list","version":"0.21.0-canary.f35b2fd7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=11.0.0-canary.3793a3143.0","@material/dom":"=11.0.0-canary.3793a3143.0","@material/list":"=11.0.0-canary.3793a3143.0","@material/mwc-base":"0.21.0-canary.f35b2fd7.0","@material/mwc-checkbox":"0.21.0-canary.f35b2fd7.0","@material/mwc-radio":"0.21.0-canary.f35b2fd7.0","@material/mwc-ripple":"0.21.0-canary.f35b2fd7.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=11.0.0-canary.3793a3143.0","@material/feature-targeting":"=11.0.0-canary.3793a3143.0","@material/mwc-icon":"0.21.0-canary.f35b2fd7.0","@material/mwc-menu":"0.21.0-canary.f35b2fd7.0","@material/ripple":"=11.0.0-canary.3793a3143.0","@material/rtl":"=11.0.0-canary.3793a3143.0","@material/theme":"=11.0.0-canary.3793a3143.0","@material/typography":"=11.0.0-canary.3793a3143.0"},"publishConfig":{"access":"public"},"gitHead":"2b12bd76b8558ed1f827fb23b46af6854b404f91","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2b12bd76b8558ed1f827fb23b46af6854b404f91/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.f35b2fd7.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-6Kp7nVYIFyhXEOpCoNpLf8lmp2g92jrab5UrEVXM+fTWkCJ5lBgX7kuXcb3wK1m0skGEXn1bZ99MlfvBpclD+w==","shasum":"fa7aa402e594806b7c7ad78541d2f52f189d3a9d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.f35b2fd7.0.tgz","fileCount":45,"unpackedSize":250113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeI+/CRA9TVsSAnZWagAAFe0P/2iTG5iLSJoBlCCt+Q/z\nLg1CfQVjvYyHPyuRlVZGHNnv9b2YJZaaHjTC2379TGLEG1M0JjjkKm2+anz4\npvBhzBg8Rs0qXX6OV4oKAMGusUzhqsQt+9pKwQM9VpapIHQ79OY64zXcT6ND\nwovC0gwDCLYUhDovOJNNla+zXTPLN+u0CvP28Cn6323qIm4On1XDGoF/gBUv\nRSC617sTpsqYtNGPhy9wqou1+kRM7qOqVPK5+YNEzVDDc7/69VYYKJNTDlxM\n1d7HxNHZ6U18RPZ21mOo//q5NQQSK+bsQZHe22pLM8pPCC6+sFCRQQP2CCjg\nQFV5xIkpo5y6YBCdfe4+C/Hsf/h42R4rUvYDk7h5YtXMA5n9pl0gcV2SmWby\nzsO/qGCwQidbXMMcrqzhnaPC2VsJ0pFyxtqAq8mKW18FjW4+T4r/OlbfM7Vj\nPEs72az+REy4u+kJgBbofRka9vCWWq03W/8jtpICP4zGlDViD+qhviGxvBnV\nZqEYyqgo9mg9haqs+iIKOYHAyXGz2jB/EXPLDashdJvUxChTGnktsSsTihP6\nw5bbwHn9sk/dniPuQMnJVs0FXTaApiUTdPh2UE2JFRafsIHMtBTFTs6FHlq8\nuh44sT+y4rawKolix2BRkljTJnvG5c+7tS5awBfFwuDz4CLX+2eK8LzyJeP7\neBiV\r\n=n0Kn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDHJRAP+6xwHHlleKTdTTjivbHjGufQ5ECVdIJNeepj+wIgTgCy/x0bE6/B9EHtjc9wSKF3dq+eFdJ/vuDOO9fUbUE="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.f35b2fd7.0_1618513854484_0.5070115472204142"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.11977cac.0":{"name":"@material/mwc-list","version":"0.21.0-canary.11977cac.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.3f342c3f4.0","@material/dom":"=12.0.0-canary.3f342c3f4.0","@material/list":"=12.0.0-canary.3f342c3f4.0","@material/mwc-base":"0.21.0-canary.11977cac.0","@material/mwc-checkbox":"0.21.0-canary.11977cac.0","@material/mwc-radio":"0.21.0-canary.11977cac.0","@material/mwc-ripple":"0.21.0-canary.11977cac.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.3f342c3f4.0","@material/feature-targeting":"=12.0.0-canary.3f342c3f4.0","@material/mwc-icon":"0.21.0-canary.11977cac.0","@material/mwc-menu":"0.21.0-canary.11977cac.0","@material/ripple":"=12.0.0-canary.3f342c3f4.0","@material/rtl":"=12.0.0-canary.3f342c3f4.0","@material/theme":"=12.0.0-canary.3f342c3f4.0","@material/typography":"=12.0.0-canary.3f342c3f4.0"},"publishConfig":{"access":"public"},"gitHead":"30cf21833b011fd8946bd6853a20341579b79c96","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30cf21833b011fd8946bd6853a20341579b79c96/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.11977cac.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-IkYdUURF/hMvM98tlXKxSeogmhXQcEvL6mtcKSY8E40rnACeXot5LQkHYXPNkPg2g9y+J83Lgj3oZ/jMZL4z2g==","shasum":"c16f06f24c7d27c6666aa618c4a2c1a5f9583bbe","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.11977cac.0.tgz","fileCount":45,"unpackedSize":250113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeOE7CRA9TVsSAnZWagAAuY0P/0JdnAZ0Lp5A+O7InQbF\n6XeDm//hGrcR0b6LQxnYwkfRiwPDfcONftMe6YjLJKa9tpZ3KffMD7orQ+gG\nJZow4lYrBqmAKuxcPkrqv+C94SMiw3gKnCbWbHP427p2nyK44IL5Tzj8qheE\nXroNBYsSCw7x2QuFSzgBGiqJ1plaa47Q3OejdjCmNbpBBu4LQvFDn8mmWAyy\niElT6k0zQMwjZ6u9pknR8TUNluwmxlkqaQe2CejVMMRKMuhVZxONfNUf8P4Q\n11eqkY2FkSjgSfhhFzbaA1EVmXI70qJ57ALY2qco+gQlhpKHRS69jWbfPQfS\n1PqacPTxVgkXvSin/Zbv9oBI2KQPbPsNqcgclfc+KwhiYhVFiKZX/s3NgJUK\nl9cr57WVv0bPqBkz838u0XR9oSroJ2yA5GEzQcTpyrd4QQuSmXpUyTFYiOR1\nTo6n3VTZIOxcXgjJ6E2unQQQBQ0IFqj0eO9suUJsTu5bHCgX8YckAKBDWoet\ncAocSABC8cdnb69QxTMwcMsfzHvOGTQOECuuxf0xb0Ri770GHVmnUf8+zTiz\n6HP0qGzV27tVClCTxunlZRUhyydlrj1xm5EDww60qr2zq8BMgktcYr3Y+VFS\nGSpGXCAIzUWLoDgEkkLG9radjZtqtN3n7E04LXKnJLg6fD1t2+5DZ0/lD8Af\n/ub6\r\n=BnjK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAUtI3vq0GNnzHsbs9X+RgC0fdZhMPu3kFtVWaTrYYl4AiEAwSbF+/9L8MmROFy3FDijpnp63V63steA2QCFlCnFVAo="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.11977cac.0_1618534714654_0.5333370085520821"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.018ff45e.0":{"name":"@material/mwc-list","version":"0.21.0-canary.018ff45e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.cad489689.0","@material/dom":"=12.0.0-canary.cad489689.0","@material/list":"=12.0.0-canary.cad489689.0","@material/mwc-base":"0.21.0-canary.018ff45e.0","@material/mwc-checkbox":"0.21.0-canary.018ff45e.0","@material/mwc-radio":"0.21.0-canary.018ff45e.0","@material/mwc-ripple":"0.21.0-canary.018ff45e.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.cad489689.0","@material/feature-targeting":"=12.0.0-canary.cad489689.0","@material/mwc-icon":"0.21.0-canary.018ff45e.0","@material/mwc-menu":"0.21.0-canary.018ff45e.0","@material/ripple":"=12.0.0-canary.cad489689.0","@material/rtl":"=12.0.0-canary.cad489689.0","@material/theme":"=12.0.0-canary.cad489689.0","@material/typography":"=12.0.0-canary.cad489689.0"},"publishConfig":{"access":"public"},"gitHead":"4ac1a4ee2a06e36457a8412629422eeaa91183b6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac1a4ee2a06e36457a8412629422eeaa91183b6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.018ff45e.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-QCd9CEXZ3pIv9AQsdFRmaZ3C8mhb0g0ogiPchP3+SlhPBMTmCX4Ajpe4KY+nLQTksah9iqfu/pooN1HJZguH7A==","shasum":"8dc46da6a1aba40ac41985a9b879a74f12280dcc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.018ff45e.0.tgz","fileCount":45,"unpackedSize":250113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJggf3zCRA9TVsSAnZWagAAx1oP/17FsXImEnJE3s/LLcyr\ntZCU69LIrwkgsdXsw4lmtwRj4cF9owld6n1Vv+n3Ej7ebNJr0E1uHWMGFPcp\nS/BsoNzDs7PTJpm7KBVPyDEIDYOynaPUMyO/qJSef60SKWbtaEH2ZRZX52d3\nhDp/ji0ySoEt0SoucL+O3kQtxiTMEKvgue3soMErB+wAsti6MxbC1ARRPkv5\noQSlI3AM7V7lEKCsQyypiTXR5ouy6cqIekyc9oWzzWEfCYUtgw2pnfF0Spku\nsXO69PsFrQbl8xe0fj+4HBrNxIojTrCOWCOTLdMogFvnzpneWyQcjulBkpyz\nBv/nDHOnXKCQf8pLOx93eCgmI+oQfs8Efl9J225OSd8no9MpgNaDqsehqV79\n865+MGJxUmJRYr87V/tEe8eMqSawrMGqE0oU4+UOsdGsv+20I6o/x4Un9Krc\nQu7x+rWRBEFsOrOUoTQ3zwCsFfshYGEI+gENXS3al3sMiSLHHL/Tk/W7dWsi\nfv+52JO8uz58QyBcgjVTwzKUYk0BU410OSWY7PnMoTiuym+g0fVh7+wSTWQo\n0LUZ77PDOMqLzzYzRMyZ+wurq/TDMXaR7o9VTRcWgbb/qUt7qFZIeJkerClK\nIZ6k/mBwQ7sXkMOsZKVkdipzf1Z5xy4QT+fn9eaNOu7NirFM+L48mkq8sAmo\nHKlF\r\n=xhJz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/JbLat36Bv/TTPuceuv3ZPZs6DiFXxzF3hWND28IDNAIgF5RwcqhNQVs5ZN1PDRwGj2UWlTTX8J5OlaALezZNu1U="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.018ff45e.0_1619131890816_0.44302879290999075"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.c99d1fa5.0":{"name":"@material/mwc-list","version":"0.21.0-canary.c99d1fa5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.197f64fa2.0","@material/dom":"=12.0.0-canary.197f64fa2.0","@material/list":"=12.0.0-canary.197f64fa2.0","@material/mwc-base":"0.21.0-canary.c99d1fa5.0","@material/mwc-checkbox":"0.21.0-canary.c99d1fa5.0","@material/mwc-radio":"0.21.0-canary.c99d1fa5.0","@material/mwc-ripple":"0.21.0-canary.c99d1fa5.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.197f64fa2.0","@material/feature-targeting":"=12.0.0-canary.197f64fa2.0","@material/mwc-icon":"0.21.0-canary.c99d1fa5.0","@material/mwc-menu":"0.21.0-canary.c99d1fa5.0","@material/ripple":"=12.0.0-canary.197f64fa2.0","@material/rtl":"=12.0.0-canary.197f64fa2.0","@material/theme":"=12.0.0-canary.197f64fa2.0","@material/typography":"=12.0.0-canary.197f64fa2.0"},"publishConfig":{"access":"public"},"gitHead":"890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/890b4e4cc8e4f275054b5ddf4b3554d0a36ad82c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.c99d1fa5.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-TNFMJRb43+UqIY1KZFsBAR19wOhC5d3JcZQugKeDN/vNkZGE/VVjwnQ4uX4IL1XBP7f4LAYUcViwwV3+7GGzsQ==","shasum":"a7d80f17491c6918c1b1cf32c556b26f4c6689b4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.c99d1fa5.0.tgz","fileCount":45,"unpackedSize":250113,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJghxi6CRA9TVsSAnZWagAASzwP/0N+Z0HsBE9bufailntB\ngpm5UwHGesfGezevYuLjGsSQgB/EBwtUVJNSIxf4oQ/9FiltcF8SRdauPg4f\n6bBQXrx7tihzlOYwWSTp75wdPLdRgV/c6rHYowv+itpaPdZH2851J1wAbcXK\nBlSiCOeRjdUzV2jlRKBqAVD+bwGsfQUe7131Dn3fk0JzKAnaSvpxl4WKRs1i\nKrXHp0kNRdqGwO9bSisnlomdeyDf3s03e03sSbbYez4sc4j220Es79OyMfev\na/LLkHK+F1FWqH+yVyUuFmixA8UXZDI/iG38dtUvDoRFKKG17jALnCjf0mIu\nZD3+uZEjr9sS4f4xFhfeV8oliur0Jsr2DAM/oH7EOiKMiKei87qKH4qs8Waf\ngURBcOvDG7Y6OTlimVr5pA9+TaQcDX8ZPdY21WZn06idacono5zPV0eakTXH\nk//Yyq4RumkzqPVtyS+Qrf3QnwZiQ1aUifrWAYO2Sxuo3U6GhYF9ebJJFRbh\nu1BlknH2va+elH8AbKng93BQMaRTKqrmI0/ba9pUBLgkhwtUfXx0e78YH0l0\nARBXNEm4AfLYmN/KVZHhhXJOvbYl7S4iAZn3GC/XbbP19NZzKFeGTKz8wOCh\nKVsTF+9gfkYQwP9yv5DxnIUtd3Y8xmR46MUtkPxYXp28J4T3ZqJKq8RXF+J6\nFNYG\r\n=8E7B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9w6ZLtaohIrZRbp621HLU2hWWXvLNWvOXpX4IqRlNIQIgXm29iTUxbMvyH38K+RvLKHlgYBu1lkHh8l+MLCwwNcI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.c99d1fa5.0_1619466426445_0.46472916090934957"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.eea9b304.0":{"name":"@material/mwc-list","version":"0.21.0-canary.eea9b304.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.197f64fa2.0","@material/dom":"=12.0.0-canary.197f64fa2.0","@material/list":"=12.0.0-canary.197f64fa2.0","@material/mwc-base":"0.21.0-canary.eea9b304.0","@material/mwc-checkbox":"0.21.0-canary.eea9b304.0","@material/mwc-radio":"0.21.0-canary.eea9b304.0","@material/mwc-ripple":"0.21.0-canary.eea9b304.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.197f64fa2.0","@material/feature-targeting":"=12.0.0-canary.197f64fa2.0","@material/mwc-icon":"0.21.0-canary.eea9b304.0","@material/mwc-menu":"0.21.0-canary.eea9b304.0","@material/ripple":"=12.0.0-canary.197f64fa2.0","@material/rtl":"=12.0.0-canary.197f64fa2.0","@material/theme":"=12.0.0-canary.197f64fa2.0","@material/typography":"=12.0.0-canary.197f64fa2.0"},"publishConfig":{"access":"public"},"gitHead":"5446efe110704f4464931aec816f98b15640db03","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5446efe110704f4464931aec816f98b15640db03/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.eea9b304.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-2F7LNDRCudfkrfuINZLw6+1RczxjrUxd7LkmpUg5k7pIPOG6c6DyFdNVg3725zgs8iITAYeuHfGOesM0wBK84Q==","shasum":"ca5543fbc06192763b7e17e42c3a0c360dfe2fa2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.eea9b304.0.tgz","fileCount":45,"unpackedSize":250126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiJXyCRA9TVsSAnZWagAAOBIP+wS+YFqlwk3OpFwytGLV\n8Q/e1dprg/hdrt15U0htavaP+F5aKQMOswRn3uYOhclzdDaUJ7Q/190HXkDc\nrylh+n0sCh77LCb1dgss0AOVSRqgcDWskDKjb1eXitukbNGuStJjB6nMZJAH\nbB7GYGnYTF7F7xfXZqO7yD11GsNoJ9C2AFKETMyeydc7HHcf8yvMR3GkO98J\nfZLT4oVyUNzhM5wjelJJePELMbnF5ojgp985rpnuYWvCbBxCkiUsdFgLEJ1H\nD3vS2LFacohmLNCRRkIuaO+bBSpMWqBg3oaxi7slOynP4vMk23OKn6KGir3r\nO/rJwoVHaH29f454RdkaXBFoAtBnaDBZ494x7H6RQ8xEH3UtCmbaI7Mu+MjD\naY3cb+nfgiDxzlZ2PYhxo09G4raoumkpobrPVOEbWCN1y1HlDB7ME8mkyReC\nuiVAX58hc0CzOwxnhPo0eqd3drp0G/uhuCkH2rQQJdqO8t5NLgzMn9I9rtI6\nYaG1wh0lN7epm++Yt5X3DmiQuzRsDmW/cgp+OArQTjC57FAlzn3tLoFlM5Bl\nUwXgqeA9EDaCB3cwjhukJj8SU/x1s+KpO5VkBcn5/53DNBcOYL/eWnB2/mMf\nLMmsPt5Rm1kaqpkjbmLTIo0JnsTS14Tb29c+NIDFB8fl2aQp6h7u4lh9qGyI\nGU2B\r\n=UAoU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyu8xoP8PYn6DBWcK3o85agGchw6PbZn2zrgy8iJnxvQIhAPYc4+1tAPDc08qC6+EalMji4urk6jcduFdU9Hd2SWWO"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.eea9b304.0_1619564018529_0.18754029924528481"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.5dd85d0c.0":{"name":"@material/mwc-list","version":"0.21.0-canary.5dd85d0c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.197f64fa2.0","@material/dom":"=12.0.0-canary.197f64fa2.0","@material/list":"=12.0.0-canary.197f64fa2.0","@material/mwc-base":"0.21.0-canary.5dd85d0c.0","@material/mwc-checkbox":"0.21.0-canary.5dd85d0c.0","@material/mwc-radio":"0.21.0-canary.5dd85d0c.0","@material/mwc-ripple":"0.21.0-canary.5dd85d0c.0","lit-element":"^2.3.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.197f64fa2.0","@material/feature-targeting":"=12.0.0-canary.197f64fa2.0","@material/mwc-icon":"0.21.0-canary.5dd85d0c.0","@material/mwc-menu":"0.21.0-canary.5dd85d0c.0","@material/ripple":"=12.0.0-canary.197f64fa2.0","@material/rtl":"=12.0.0-canary.197f64fa2.0","@material/theme":"=12.0.0-canary.197f64fa2.0","@material/typography":"=12.0.0-canary.197f64fa2.0"},"publishConfig":{"access":"public"},"gitHead":"87fa4ee3a285fecb598e3c37e03178de68d79f7d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/87fa4ee3a285fecb598e3c37e03178de68d79f7d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.5dd85d0c.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-Kya+HT7lcnKG7L2n5p+sANfNcJ6p0LnbhDTJblMvTQY7EreW7fsd2FaRfGnsDF/gy2YsNVwn2sAHeM7ToZJk3Q==","shasum":"e5abc8dbaa1119cd326adcdf919f39618d467971","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.5dd85d0c.0.tgz","fileCount":45,"unpackedSize":250126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgiKfaCRA9TVsSAnZWagAA2AwQAI0i5Z2r8rg+SqPNZfdL\nTMPFIMkLEVqJBeW/5QeJCxObCjt5BtTsfafJiPybXcOn1XCwfQjeWsD7hPL5\nGL0F/R+qBdkJEyo6QSo/cY1Iq7qk8MnsClSzNZAURwpOWqHztVcNcqHXTyXz\n7LQab8wGzUEYQ2V78MX/nf/Zwxo2rGo3rnsllOFq6cOmfe7bVyxRETCtCAS0\nj2Jd0XaKxndRI3e7HZFQ+M54z09D3Mgdxzd4j9wMbV9uTknP4byzUxVsRB6a\nX4ThbvbCv8k1rLbKbdO6jAwraqR0ZEBjWdf7fdiqE4kC0YkKOvTNAA/268zV\n4Hr+851FwLn1pc6uafWFsevb98yoffYEgWgBhPcNrDxUrXA8Cos72GLRN4Sz\nRjAhs6E/bQieHUDn3EwlJ6dJ8ggZVlPBJ03ddPymZEaxGEqM/UILnFdTz+HK\n3ChUqBoRzxFiPyyhTEUWS7XCoyhLn151G8Vb5kgHRnE63ClzPOUmeg89FAOo\nxIhgSPLo3TUdTzElMfswrfJxNUTkYGSgMMAQJwSFhRZxANusojk1Yxm35z1D\n8Kb3udkEl78N0SqZI/aYx6GES+zZ3JCX9S1YwBc4LXJ3yr+J/gvyxaNLyh3U\nrKrW9CtONLlsTAVp8gNla4WOBV+BXRgzIk7V3NLOSfNekopveFT1hYORta3z\n9u3c\r\n=G62P\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdWGK61Jrca4DJ4Fz1DWyIi8ZSjhoYSb9fghJYmZZLhQIhAJIjd+pMVcxdd2G22Kw/FHssE9/fKHd/8u23qdlSFZvV"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.5dd85d0c.0_1619568602164_0.5263474560882659"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.cc813cff.0":{"name":"@material/mwc-list","version":"0.21.0-canary.cc813cff.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.197f64fa2.0","@material/dom":"=12.0.0-canary.197f64fa2.0","@material/list":"=12.0.0-canary.197f64fa2.0","@material/mwc-base":"0.21.0-canary.cc813cff.0","@material/mwc-checkbox":"0.21.0-canary.cc813cff.0","@material/mwc-radio":"0.21.0-canary.cc813cff.0","@material/mwc-ripple":"0.21.0-canary.cc813cff.0","lit-element":"~2.4.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.197f64fa2.0","@material/feature-targeting":"=12.0.0-canary.197f64fa2.0","@material/mwc-icon":"0.21.0-canary.cc813cff.0","@material/mwc-menu":"0.21.0-canary.cc813cff.0","@material/ripple":"=12.0.0-canary.197f64fa2.0","@material/rtl":"=12.0.0-canary.197f64fa2.0","@material/theme":"=12.0.0-canary.197f64fa2.0","@material/typography":"=12.0.0-canary.197f64fa2.0"},"publishConfig":{"access":"public"},"gitHead":"2505c49d16e9b978469aef456cb53e6d6b265758","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2505c49d16e9b978469aef456cb53e6d6b265758/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.cc813cff.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-A5ZgMFdhtdtNS0wD46YQG15aZ2nnR3re1y6Zmhi0NrvIS3JT6HXHuSfFPkyl85xsObeFrSJYbtX6cnAwV1UN2w==","shasum":"f063c43da9b5dbdb6f9b047adeaded01d9f777cf","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.cc813cff.0.tgz","fileCount":45,"unpackedSize":250126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjHR1CRA9TVsSAnZWagAAmrsP/RqbDDbcVFOSXyHlGYQi\nPDBxq74zqbYGLZ5huUjzetQUHSOg+u4WExItZcvj56LxslrpKRik+5Xi2BUf\nqZRM2dKWzrt8LriyVBH55un9PyJt7C9ocNxoT9rrStP79AiTQRA2GPc89U0U\n9zh5os18n3atCn5Dj3F//GsUP4sYgCSAdzNd73OoWgJENR18Ylpff5dMVcFI\naM3w4V+23sIuV46U5mOy0MilL13lZpXfDuPOuMmVaT4vf9iACp6dVZXyCHA4\nPMaQP/8tr4JntZun3H1YOX3t+ZMxTC7quhHbOSPZGvHBPINEbs6LkRmwc4fO\nejg+hkfNf02HaLxednYg0zWg7ucbVKXI7zeZkgF+I+doUd5iMXCsp3JnXyGb\n3cUaTBpce9+f74kSsPDOLaMhFgBtbF4noT63psNz9MBq+SXZchN1AXNvKtCC\nRRyXhZo05jlgGLatARrP7aqiPQ9XUqoYbHTkP6X444E79BO6/TNc9voV5oLk\n2H4dbvwvbsFLMz7IgLBkmIEYcBP5D3kmaWdUD+jqAaWz1XDPgz5ryWApIphA\nQ8yh2pL16FW/fKqf8hiXCBDhgMnAowv8XAk9ewaBERXiU4ZyOIFOl7NySdQO\n4sbQwVVfoA9wRxkG8rhOa/I5KXfzBZyOG4gD/Y+E6exgRldiPS9ykODQ7X4W\nEYkm\r\n=eO8L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHNABE5hHxCMGxu+mKeuupT8rZHdHOVKnH++kS5x0OYVAiAWIPc7m0vUmoJBqgzfZLu7koXuU7JWbkjBMWs8a9ISgw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.cc813cff.0_1619817589432_0.12700721966887296"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0-canary.0875e898.0":{"name":"@material/mwc-list","version":"0.21.0-canary.0875e898.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.197f64fa2.0","@material/dom":"=12.0.0-canary.197f64fa2.0","@material/list":"=12.0.0-canary.197f64fa2.0","@material/mwc-base":"0.21.0-canary.0875e898.0","@material/mwc-checkbox":"0.21.0-canary.0875e898.0","@material/mwc-radio":"0.21.0-canary.0875e898.0","@material/mwc-ripple":"0.21.0-canary.0875e898.0","lit-element":"~2.4.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.197f64fa2.0","@material/feature-targeting":"=12.0.0-canary.197f64fa2.0","@material/mwc-icon":"0.21.0-canary.0875e898.0","@material/mwc-menu":"0.21.0-canary.0875e898.0","@material/ripple":"=12.0.0-canary.197f64fa2.0","@material/rtl":"=12.0.0-canary.197f64fa2.0","@material/theme":"=12.0.0-canary.197f64fa2.0","@material/typography":"=12.0.0-canary.197f64fa2.0"},"publishConfig":{"access":"public"},"gitHead":"d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d5ea3c745b8a267546c8a9f9ff3e491bd41a8f2e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.21.0-canary.0875e898.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-RsFHVyDTiVFoBbgIYt/mG81dOspoUX1dMXBJvxS0U6O7xlDItfWjNd5CGoNQW6/lNZ0GT9+smLqjOJfpNDdjXA==","shasum":"939873f1a4d0d140d0fca312e662ef47a93891b1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0-canary.0875e898.0.tgz","fileCount":45,"unpackedSize":250126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjHZhCRA9TVsSAnZWagAAwAEP/0vFCjQZK7emXVtJ713C\nzIR+j6fU+Mjs1LHjmlMzLvY0/miTJ7XKgTAbAPl7S2nZbF12Zlqp3bNQSbFn\nGnLQajf+Q2of4QMu+QLT1Cl5BE4mO+0d7lbsbLZtqyfPEfLA1FGF3K9h9OOF\nPt6BM3VOZd7vYyJak5Hzyb46aBjRF11R2xpR/VMES8Pb8lwDhM00U1KjndPv\nYzHZcW/pWP5Llo/rKI+g9gY0ub8xnpTxwdy+P6QdSVRgb1RjlG6JeV4rBM3m\nofIPRwWTs4oVcdGGv50+2A+XLEQ2BbVSY0NLv4srEP3fTrheFSRQ3Yvh1Gzh\njfa6wl9U0jqaT4ggS7UkMxnGHJWyz2d7D4OB1cA7Zke5XqX0xIWwHUz2etgf\nPIEsHTgTCR6lR8i1WIrUR7C3sB2Gmc2ppdoGCugnlCkKfpfSRyCX/+0WzBiw\nYhOeSxgOnzq6FeAPTeXs8M33GQcasULbftrZm1L2qWAjTGHJJHQjvgs9fGeQ\nHILbyMebuEZ9UdHmAEFJMPdq9pbVB+iCqq3wNBaGpch/xlAf3HNcMXQDczJ8\nFepPzmcb+VdrRrMYOAR8AIFgzRCIFG2Dr7t4dLS97XXLq5eyR7pfBQBc3aJt\nCcgdznsy79/YT+Qctu7S6DnQ2QeGKcXhz3P55gmcjUEcGIWU8YzWZjAz1MKM\nJlzH\r\n=rzHj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCsm8b5CxYTi4+sycXC2XycprbCDWdtxENwv6tPOqQLJAIhAOsfyPb7enQxdqzuMPmntjPG0NCJuUQ1RAcyl/1XXlAk"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0-canary.0875e898.0_1619818080606_0.548481181192628"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.21.0":{"name":"@material/mwc-list","version":"0.21.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.197f64fa2.0","@material/dom":"=12.0.0-canary.197f64fa2.0","@material/list":"=12.0.0-canary.197f64fa2.0","@material/mwc-base":"^0.21.0","@material/mwc-checkbox":"^0.21.0","@material/mwc-radio":"^0.21.0","@material/mwc-ripple":"^0.21.0","lit-element":"~2.4.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.197f64fa2.0","@material/feature-targeting":"=12.0.0-canary.197f64fa2.0","@material/mwc-icon":"^0.21.0","@material/mwc-menu":"^0.21.0","@material/ripple":"=12.0.0-canary.197f64fa2.0","@material/rtl":"=12.0.0-canary.197f64fa2.0","@material/theme":"=12.0.0-canary.197f64fa2.0","@material/typography":"=12.0.0-canary.197f64fa2.0"},"publishConfig":{"access":"public"},"gitHead":"8f1e7e1b886b6c6820c18c8cc26cce7b15fd2c98","_id":"@material/mwc-list@0.21.0","_nodeVersion":"12.21.0","_npmVersion":"lerna/3.22.1/node@v12.21.0+x64 (linux)","dist":{"integrity":"sha512-GaSJ4GAowMdka41j8A7BV5q2LM4r8HQazTcqxQlmBjupouwbLtQdYQVzkuU6egRF3xmpsF+qJPO3ZCMNR+XJlg==","shasum":"7e3180cd9400e753c8429a19d1a1cb050ec51635","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.21.0.tgz","fileCount":45,"unpackedSize":250006,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjJmWCRA9TVsSAnZWagAAEpcP/jesr1V/hfrpD8ZbQsyY\n/g776JvsUqC/HdTlshJHVBm5x8L1SilYeKAigU/uq7RjIrAfjheT3Sgu3ugZ\nk4z59ciFhReBX0uoKnB7C2TmY3TcrcqyvBp82KJaelblNZBX0RtVMxNOkFI4\n7lSUWcssG2VN2/NimNQjczC0aMjaoHEZBu2VOeF1dnIa/XsFBoQfnhrsbRaZ\n+dtntys3Cpca/xJQ2QwStRns1r/0FUi2kv7nf4NORdivBVxfjNkfQIKdscEp\nM6CTKOY31qd/LNIMsFQPcVi51Wm4wHafIRMAsVH+qkg1Qa8lm43PWi0qhVlN\nq3ENuNrmIZWkq2SEGFcZLURN1YCTKjlpfrcjEV9K9HRry55Pykys9M1bt7u2\nu6vfCqYDIDQrN0xuIKKApwbgDOMeVTXf62GXhKFdTQYkYFWdjPmtQQJ1L3vz\n4AoIm0x9SK6BJ4IqXY5HOM336Za4PtlFyzq0c29LJo1SO8GMzGqHj5s57n1E\nq3nAJda375mkmm9PZ5EAVpnDfxAcE564f6khSYmorFvE/8L7BmSCfVgYV2nA\nTHsa2WnW/fT9R2KqJjFgiLXi/USV0w/zKlykfNOZBiPmJdO2YwnK7hHQwZYY\nIfC78avxJCUhr1lA0tsB+mWYlCfV8c6NUpYAbjGDro2e8I5gxz7C4x3JxekQ\nhGg1\r\n=zY5p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDh1OUckEmvpRwvALZICAFi9S7jTimfzOty9byghHeqXQIgT5wdAQXIUXct1YVnywJaeabKj8tWw0cg6vjCeupokB0="}]},"_npmUser":{"name":"taylorv","email":"brian.t.vann@gmail.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.21.0_1619827093936_0.01688746357364934"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.8f1e7e1b.0":{"name":"@material/mwc-list","version":"0.22.0-canary.8f1e7e1b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.197f64fa2.0","@material/dom":"=12.0.0-canary.197f64fa2.0","@material/list":"=12.0.0-canary.197f64fa2.0","@material/mwc-base":"0.22.0-canary.8f1e7e1b.0","@material/mwc-checkbox":"0.22.0-canary.8f1e7e1b.0","@material/mwc-radio":"0.22.0-canary.8f1e7e1b.0","@material/mwc-ripple":"0.22.0-canary.8f1e7e1b.0","lit-element":"~2.4.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.197f64fa2.0","@material/feature-targeting":"=12.0.0-canary.197f64fa2.0","@material/mwc-icon":"0.22.0-canary.8f1e7e1b.0","@material/mwc-menu":"0.22.0-canary.8f1e7e1b.0","@material/ripple":"=12.0.0-canary.197f64fa2.0","@material/rtl":"=12.0.0-canary.197f64fa2.0","@material/theme":"=12.0.0-canary.197f64fa2.0","@material/typography":"=12.0.0-canary.197f64fa2.0"},"publishConfig":{"access":"public"},"gitHead":"346f8ec243ae13b28796324e6408721377829b39","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/346f8ec243ae13b28796324e6408721377829b39/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.8f1e7e1b.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-+boIyAukXaG3STfJoX8Fu/tqMcWswWt3rlE4faSZnd61As83RNX4Ec9Rf4MzQpsZLrb8H4VT15Mb3kE8HMBOYw==","shasum":"1caf2dac3ffa322a56fa0cacf11fc8b10f18edea","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.8f1e7e1b.0.tgz","fileCount":45,"unpackedSize":250126,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgjJtcCRA9TVsSAnZWagAAVS4P/0+GsOxrJurxLAtqjmRO\nTRboAUzTNTFfyd3TfLbvj8zwqXbSSeB53zQEp5MD00bPs5PHUQN+YULbjh4r\nZ7UTF/KJIv4kw1QU7rKDU0I0Dn+OBXaDBK6x/ho6+kTv874PSCikH7al8unh\nLQIfERCp99U21uLLZt1QkWPVdwkE/k2A3vOiqK+f2n7mL/GzlOWU+CN5KE8v\nthkOFQ0XiCztQENyyPMaWnMVVA7bvqyRYR8W+gjKHg4UTszolCLxo9eiGIAm\ndvUFtcc7kfQtKxB+DNzXJTLZw4abp5XkgoDiKERWKpiZH6EdJ3sw/FXN87zu\nU/2ifNXhX4X7Dlf/8Or4/r2j71QC/PoH5L1mAW8jFozZ8Xy+Rufok23meLK/\nbrmbqlRlyrtlfdxJgbJJen5EPHMm2+FQrYtjkB+OzAacyswG/BVrCjegAt2O\nX3lVVY5DRtEuEXET4JymCMotYY3VydVw6XzqyNhIYdk22XXBfL1NeG5SfJZR\nhKe2AhjdKgbryP1SeKEalQberqLG94PF1Q6xTp3vBHJcrhEtCEHz9pZCMXmy\nMMmeVSEauIagoJNbiYg7jnhC+zIDigkN3EITYf1iyjED+NpB3+qHUN/1DEfc\nczUgz9jjoFN00yvGTNgQlg0tP+NS9j6l2LzeOMe4C6/TqWdwvFuB58VrjQ5O\nhypn\r\n=bUtI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDwL+HGO6csWFt93kwvD5BM/vr0flSinHiAqKDvPMxZqgIhAPh39Sm6ETBtX2+REshMwoHPzmyg//wIZNmXF8l6s7u/"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.8f1e7e1b.0_1619827548169_0.32073615698955527"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.deb0e792.0":{"name":"@material/mwc-list","version":"0.22.0-canary.deb0e792.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.197f64fa2.0","@material/dom":"=12.0.0-canary.197f64fa2.0","@material/list":"=12.0.0-canary.197f64fa2.0","@material/mwc-base":"0.22.0-canary.deb0e792.0","@material/mwc-checkbox":"0.22.0-canary.deb0e792.0","@material/mwc-radio":"0.22.0-canary.deb0e792.0","@material/mwc-ripple":"0.22.0-canary.deb0e792.0","lit-element":"~2.4.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.197f64fa2.0","@material/feature-targeting":"=12.0.0-canary.197f64fa2.0","@material/mwc-icon":"0.22.0-canary.deb0e792.0","@material/mwc-menu":"0.22.0-canary.deb0e792.0","@material/ripple":"=12.0.0-canary.197f64fa2.0","@material/rtl":"=12.0.0-canary.197f64fa2.0","@material/theme":"=12.0.0-canary.197f64fa2.0","@material/typography":"=12.0.0-canary.197f64fa2.0"},"publishConfig":{"access":"public"},"gitHead":"7b8ce494b86ceb69e799a5ec1a9f0148075d04be","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7b8ce494b86ceb69e799a5ec1a9f0148075d04be/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.deb0e792.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-YOoFX2kWIiGRSv7AHTJy+4TH4h/xwepTT2ycH7gUrLOUJqhM5MrRxp8lx8i+X5gH88sgnskA6TnIxc+YpCoLFw==","shasum":"525ce9190f08cc395771a43ef3775bed558f71fe","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.deb0e792.0.tgz","fileCount":45,"unpackedSize":250122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkGx1CRA9TVsSAnZWagAAFgYQAJVznCaitKFjxY2rBtC4\nJZJnpuSXZ3wNuSqv2hQ1fTQ4v1LhcalTZqRu1/UQQ/7Ms0oyX5q9z63+jdia\nMYE+quHAJtikU1+UhXH0zpPHYrrCuP/fgYTtOivMgfyTuAplbKnBOP5FlBJS\nD4IsuOf1sM/K7yfYlKojLh3suac+PGIz6W8abXbjTLrzoSMErScj0kemprAK\n5UddnLSHnZWN5HICysc0nIfOVebmYfSWerxlstj6qr6Vzj8wjlxk5iD9wltx\nmm1TBOfh4GlEfGCCM3x9WfmqOQB8IoCFWxeQhAV0jZJvW/Jj3af4OyHMO3bi\nTDf2At5cPfuQIroqmszSt0RRmduuR6YspL2jgGwe7UPxNquLaI9vQx8tUB8S\n87BYekflggvNZnVt4WBzrqCh5KXDJ0MlwVObam7ZpnBy/b69oLD4Tc/ItLki\n9VGiwfszeb6WV5jI0Atuxxr8DxX78NzwiCGexXTCyutqNy3XVZUTeE8XnmiM\npJ3EEld+IJgidr0UaXTkzO+PYI6vejaGk7bg8R/K+wzPyHSxoeGkhHdaWApq\nbAXjPphaR5D108BITbwVs3/x/7SntpKm53EFanilbGqC2giXlrWclKOqbmXC\nSbQ6nBMEBYK0oQKYUq2sDW7rsHx4Cgu3xWP82pbOYDB9ZnUWTS75hxrXnCJQ\ngwI2\r\n=/Lsm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICVEc3LwFj8NGFxsmLNIbBCcQDR+rbOfSY0z0b1r3ChnAiBJ/vJgm3AAR1u2p/ZnFocMpT+RFZX0z1q97V6ev7jMJg=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.deb0e792.0_1620077684889_0.6641823706002745"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.a3ff615f.0":{"name":"@material/mwc-list","version":"0.22.0-canary.a3ff615f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.474836ad0.0","@material/dom":"=12.0.0-canary.474836ad0.0","@material/list":"=12.0.0-canary.474836ad0.0","@material/mwc-base":"0.22.0-canary.a3ff615f.0","@material/mwc-checkbox":"0.22.0-canary.a3ff615f.0","@material/mwc-radio":"0.22.0-canary.a3ff615f.0","@material/mwc-ripple":"0.22.0-canary.a3ff615f.0","lit-element":"~2.4.0","lit-html":"^1.1.2","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.474836ad0.0","@material/feature-targeting":"=12.0.0-canary.474836ad0.0","@material/mwc-icon":"0.22.0-canary.a3ff615f.0","@material/mwc-menu":"0.22.0-canary.a3ff615f.0","@material/ripple":"=12.0.0-canary.474836ad0.0","@material/rtl":"=12.0.0-canary.474836ad0.0","@material/theme":"=12.0.0-canary.474836ad0.0","@material/typography":"=12.0.0-canary.474836ad0.0"},"publishConfig":{"access":"public"},"gitHead":"1e819eb3a7930649e9ccc58d69e42d7d17e022ea","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1e819eb3a7930649e9ccc58d69e42d7d17e022ea/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.a3ff615f.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-m/1uYGM0hbdkZni4k9u2CALX2TB/+ipvZdHma1wM0rmPPv0O/zc4ep6p96PoPVwyDe3p9QrLs5yxYDJ97Jst8A==","shasum":"496db57b222ffc40dd25108547896fb0ba89c9f1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.a3ff615f.0.tgz","fileCount":45,"unpackedSize":250122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkHpdCRA9TVsSAnZWagAA5BYQAIOpoiROkn4kGkLxGe34\nZe42/J79MZt7aySz5E777m0TXSc/4EZZALyN1ot74ruRqmvAMbPBGfGshKAd\nZmb+pIQbi3pSJpLrXb5p6Ce59DuZS8FKO8qKUOTPRNKr03x63e9VBsGrG2us\np3hoEzMiuYEhO29Tl92AodIT0wbxjMyuwzomecVmvwhv6THj7CbWDziV65gf\nq2al5PHk5olrFXiuTcw07+YmBYOi36KwiNj0pXZNQZZ8NFAOv1JM6ASmrOOB\ngcgkjDABosEpOM9kvB8M9X5Vb7MYZ83XGwSVM9JMEkv5nJj9i7ZneV9UbW3X\nz+1gn1q2frq1Q6ZPORkVT8YJmPXF8G1us8rTRyAl+c8MONfJWJNCl/TOHRVx\nKrlPBU84ej/P4kpVu3siLmKeq2XcY80L9XGn8s2LZmefNvV7OylVnzh0QIk6\ncDeH1ad5m4V5rhqqvf3byHhfJ1RwFVaHhFq/xU4bBBYekhX7OUEUJ+QTHFpf\nK9HqenVJ0jKaSGc1GNqBw0U/he/OYuq0DODhbcGt7qQiS9ln02dXZ4CcZvIy\nkCZZbuMzlrjCE1fvqFHbdJVxHmjr/hDz97S6aikqLv68rq90XfpLLlbdr3fr\nRh2PR/8V8UCyv6w2Oqwcv2OP2uphoYG+QXg6L2qz7RIFiLo+dLVv7JsC2hx5\nIwWf\r\n=QU5m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCr8zkJ0GQNMMHz2LK3wqaBYL5meFs31N0L90Ed5fFBWAIgFrBcp9TOaezZesxBSZkPfBnQI1V5uQeglkqxKJfjxF4="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.a3ff615f.0_1620081244738_0.38409481806403334"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.948ccfb5.0":{"name":"@material/mwc-list","version":"0.22.0-canary.948ccfb5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.474836ad0.0","@material/dom":"=12.0.0-canary.474836ad0.0","@material/list":"=12.0.0-canary.474836ad0.0","@material/mwc-base":"0.22.0-canary.948ccfb5.0","@material/mwc-checkbox":"0.22.0-canary.948ccfb5.0","@material/mwc-radio":"0.22.0-canary.948ccfb5.0","@material/mwc-ripple":"0.22.0-canary.948ccfb5.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.474836ad0.0","@material/feature-targeting":"=12.0.0-canary.474836ad0.0","@material/mwc-icon":"0.22.0-canary.948ccfb5.0","@material/mwc-menu":"0.22.0-canary.948ccfb5.0","@material/ripple":"=12.0.0-canary.474836ad0.0","@material/rtl":"=12.0.0-canary.474836ad0.0","@material/theme":"=12.0.0-canary.474836ad0.0","@material/typography":"=12.0.0-canary.474836ad0.0"},"publishConfig":{"access":"public"},"gitHead":"1dd7576742ede6b9f763d391eaebd31ce501ea16","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1dd7576742ede6b9f763d391eaebd31ce501ea16/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.948ccfb5.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-m6gDOsB65VDsL4EQT8I5N31ZZMZZ8N2ZBzW7cuY5V8unXuFW+0ox0kJJxj70VHcK2q/tGB5hd2mcaj8QpH/Jpw==","shasum":"d78c4b0f7cbdbb313096ebd6e5d7dde7b3fed14f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.948ccfb5.0.tgz","fileCount":45,"unpackedSize":250122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkJEgCRA9TVsSAnZWagAAotYP/RSSy6dsc+KhedagQ74h\nvAJHCb2g4dCm3Fjif825caoGQB8KY3ripdWCPIHzeQTPrGpae0iMYpNsggw8\n+ME6Y/0IAovvtU6nzwa5EywzLwIWM5+JGW4Je1urumEZP87qFKypjJzBrp/H\nuWOjYbkDmmljTf4oUKxt+wy2S+iDIoIFo2We9gmXY2TB55byGhUz3z3iudDR\nt5ko86tkw48nlvay1jMX1SKq5FUI2HSzO7XGHaRGsCDQv+wgrAc40CoqaOR0\nc4qEAYYoaE3UtECet4WspGSRdnB2NrAvF9W0Fv8apw45DmwcQWk8eO60RAic\nFM0Ti9KDFCgeThg2abJexIcZRd38PZjC2nkmSGN8GGh/cWQObHojLmxRWHZN\nLfdWgXZAwM7xdeQy+xEvkDlaXA00qFNyiPl7y/wOsc6FBHQ9o6PoNj9ij8JW\n4RfVVSDhDDBb1ZVdrnExpBIjNTxEfzD+L9kYWRbwc/X4hirXrIPoDuWyeWb1\niOj8g5/NUSpCB4H952ylmhIbGb0BXa6wJLepcI5Gi0vMoZAaMx4873ziU8XO\ndvyIHj2yNqpNZoxugxsJFqwDYoNFyokh34F3QPMFzwCcF7yuthLRF7Y9Uq8Y\n7M8yLUa+43qtlxOJZiokF1b2F1msVeqciUZ36uTub8WFBy2cZRi3PH1KYpcc\n2hVr\r\n=PMAO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFvkX9L1Sn5UvY1snNflRR3J6D38uDG8+kmnTx1PnvKmAiBwMjj1TooIoru9cpPQpDnDFEnY0oF8bPyl190C8EF9Mw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.948ccfb5.0_1620087072111_0.705709517772841"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.9f8337d7.0":{"name":"@material/mwc-list","version":"0.22.0-canary.9f8337d7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.be999eb08.0","@material/dom":"=12.0.0-canary.be999eb08.0","@material/list":"=12.0.0-canary.be999eb08.0","@material/mwc-base":"0.22.0-canary.9f8337d7.0","@material/mwc-checkbox":"0.22.0-canary.9f8337d7.0","@material/mwc-radio":"0.22.0-canary.9f8337d7.0","@material/mwc-ripple":"0.22.0-canary.9f8337d7.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.be999eb08.0","@material/feature-targeting":"=12.0.0-canary.be999eb08.0","@material/mwc-icon":"0.22.0-canary.9f8337d7.0","@material/mwc-menu":"0.22.0-canary.9f8337d7.0","@material/ripple":"=12.0.0-canary.be999eb08.0","@material/rtl":"=12.0.0-canary.be999eb08.0","@material/theme":"=12.0.0-canary.be999eb08.0","@material/typography":"=12.0.0-canary.be999eb08.0"},"publishConfig":{"access":"public"},"gitHead":"c25dd9ae2c04ae380f41705f23786ddbcbe29456","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c25dd9ae2c04ae380f41705f23786ddbcbe29456/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.9f8337d7.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-9sPQxeWB9q45gC/iX9mDM6j+i1SoX+tS6l7ON0MrN8cEqJxHfPo2/CY64l5+cYmEmVcLscEbfLxz+7Agi3V0OQ==","shasum":"a89e27745df4fb66c1d8f378981f77c3616b6046","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.9f8337d7.0.tgz","fileCount":45,"unpackedSize":250122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkZRmCRA9TVsSAnZWagAAMuoP/2IWH9xMeXv9v7SScwEF\ntOloDjYui8QQBzOr6XVfvWDeY0j+BWNIWgQuEMJe778+enG1sVDC1L2f+5aZ\ntrY+7aZh0pKfiZFL3Hnki8MiEbgh80y7i2s4kim5ktO9crHhRnRf6AnnoNXz\nvaS3C9YP+u6x3Pn8q8SDWO0OFq4I+QXC7NZ9ZxV6OVkMshONFG+t2xOw8Gbn\nSAZWQ8uL8zVugSi7FAb1BJsLAB98RTHhG1//DUlhe7cdybY6bRx9hLizKO3O\nK9FF00SDnieYcCEMtvJvYafn8I/lk9/uwh/cHvIuT4sQqx+KEDPwgqbtbyKO\ncKEFSMLFEx2c6H8D5uUKzmJ+8Rvi7USU91M6Cxt1bn+F/OuAsxdZVvb5XhKN\ni4sFbVBOiMds5YBw5FX+Uyc4DM9OCNg/Nag3hPej44rP5BgiY30UaQ2c1Fdi\nEj0nvHqdSpFVa+Au9I/PX3L4M2JXLVuLMqdHkHV+D11n27zfd1B8v0lSAogw\nQHKFrj8HZxx98BXxkXjY6n/gTBJ8MjSxNYeDIjiyBYeXnTnlVDopv75aXkGw\n07beVWXD3rhCBrRvZOSHouhdlxjYOiceY2IyM/rsoKorQBBd0n98rwRP3A4j\nF3KdGcJgWAf+7cd9nBmzM0tzfg/l0liXbctZW2H8pqHD0AO17htyK5NuH5Hy\nIAm/\r\n=nP3C\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAT6//aND6AuhPYT+9VexxK9lw9j6ORNY3NGyyLWyx4sAiEAwavpgPTYHnbF65NkXMpWdclMN/kVtpt2OR7NiqvwUsg="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.9f8337d7.0_1620153445752_0.4512712199541633"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.5813480a.0":{"name":"@material/mwc-list","version":"0.22.0-canary.5813480a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.055d4f10a.0","@material/dom":"=12.0.0-canary.055d4f10a.0","@material/list":"=12.0.0-canary.055d4f10a.0","@material/mwc-base":"0.22.0-canary.5813480a.0","@material/mwc-checkbox":"0.22.0-canary.5813480a.0","@material/mwc-radio":"0.22.0-canary.5813480a.0","@material/mwc-ripple":"0.22.0-canary.5813480a.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.055d4f10a.0","@material/feature-targeting":"=12.0.0-canary.055d4f10a.0","@material/mwc-icon":"0.22.0-canary.5813480a.0","@material/mwc-menu":"0.22.0-canary.5813480a.0","@material/ripple":"=12.0.0-canary.055d4f10a.0","@material/rtl":"=12.0.0-canary.055d4f10a.0","@material/theme":"=12.0.0-canary.055d4f10a.0","@material/typography":"=12.0.0-canary.055d4f10a.0"},"publishConfig":{"access":"public"},"gitHead":"293298dc0704d114f85fd245f98ee8f21a3ea348","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/293298dc0704d114f85fd245f98ee8f21a3ea348/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.5813480a.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-QRoZobrTBA2KA4oaDYv8PlFX1u/xcE1HELlR69hRgA20Yi9JgNYpHF6UT4dZct+blFZrcfKrApBBwi9MEZ8v9Q==","shasum":"6a326a0184c12bea46902a657467d6947478924e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.5813480a.0.tgz","fileCount":45,"unpackedSize":250122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgkuM0CRA9TVsSAnZWagAAPU4QAJBMDuB8u63Y4pZ70TPv\nJ+rYOQwUG0TEFX7QVYg5Vs+nAqsffPswgBVR9eYkjZW2AfhGTRdmjE4UI65A\nrS83V0Qeh0Ytd1VK0aqN0nFbn6aEb2Ok3BFoDj1bIMhROLUJ6JTW/a8s3dQD\nCw7X+lEGB1DKYxN1kT3ge7IApfq2Jt5m6Ct+0hGRS+WW2fKwmaQNGZQ3nHcb\nadiLe9qARAWI2WQVzlukvsL+4OA+aw8guwjaLloeuV0goEnXFSiCoJfPUwDG\njvs9cNELBeWSoqVbflaZqS7TGs2OvdxjzX0bft47p05HANESbp2PqnGDDBfp\njHqI/3/gE3By0vfZC9QUQE0TxYqVFfKDRaq5a9koptQ2zwG4hel2wLL8jLPD\n2+0e0bp81LFWgnDTEQl0xtMxv1RdFYVmBYVYvuyI9HZgA5QDbVhqBUkosRze\nzXZ3X5azvdTFVmeMuxHVVFpLXf8pJNtfdRuIs/5w8W6kk8kQqxU00q1YM4BH\nbfzl9oDQM1TQVw4GhvWtIZL7UGEX4+nJH4pU+qMq5nRQskONAEieSkOOx0uQ\nCTCFlMlV00EwEfsmbOB4Z6XjCSVibvC6Cb7Td203w71fu+guHRLfWYnsJ1JJ\nWSfpyPjvczzUlpHsCkOi3ADqPbn8awW/CV++HslTo52b7bVLn96jesMuXnT+\nS5wM\r\n=xn1M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3KVpwJR//W9w0QNc0n08ddu7EmS1hFgBtckhO3Ir3UwIhALy0mREtt2kxZKfVjlb829tUkKFa4EucmYR2lph+1+Sk"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.5813480a.0_1620239155596_0.4122987440336576"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.ab7fc1bf.0":{"name":"@material/mwc-list","version":"0.22.0-canary.ab7fc1bf.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.03f525f9f.0","@material/dom":"=12.0.0-canary.03f525f9f.0","@material/list":"=12.0.0-canary.03f525f9f.0","@material/mwc-base":"0.22.0-canary.ab7fc1bf.0","@material/mwc-checkbox":"0.22.0-canary.ab7fc1bf.0","@material/mwc-radio":"0.22.0-canary.ab7fc1bf.0","@material/mwc-ripple":"0.22.0-canary.ab7fc1bf.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.03f525f9f.0","@material/feature-targeting":"=12.0.0-canary.03f525f9f.0","@material/mwc-icon":"0.22.0-canary.ab7fc1bf.0","@material/mwc-menu":"0.22.0-canary.ab7fc1bf.0","@material/ripple":"=12.0.0-canary.03f525f9f.0","@material/rtl":"=12.0.0-canary.03f525f9f.0","@material/theme":"=12.0.0-canary.03f525f9f.0","@material/typography":"=12.0.0-canary.03f525f9f.0"},"publishConfig":{"access":"public"},"gitHead":"9aaddda989be6b623f728abc86d48adf169d6f69","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9aaddda989be6b623f728abc86d48adf169d6f69/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.ab7fc1bf.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-0vrrNP871VGFI1ahEjvqopjCkYNt2mM0a94LduoqAAN1qr0h3MsUmUQp7NxgnwZcxcPrf+RNGsKRV/KwRSww7Q==","shasum":"21ca3b3d26a4e74178a55d7bfd43b43758c75002","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.ab7fc1bf.0.tgz","fileCount":45,"unpackedSize":250122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglC6fCRA9TVsSAnZWagAAXRcP/2yHH64p8QjB6EL+I9qY\n+ZipJmTE9HiocOhmtkTTIrUY3qizR6z2uR/ebzCycT1i0/mljyE0C7Ok0nNe\nw5Q/l8pB0tecX3IX7VTYAsH04UlRpdzs06RR95WDOPYBVyJ8OsGFtEf7Haml\nWFu/X6JdRrmzHRxAnSmU8H07OaGhAVz64CROzUuPlCXPXe0RDLY3KV4lNtoN\nz2gCj4Vxi5IKT4aEC4ptcj193GaKgFByeeLcuHwCPbp7aFQ+Ax9MSxNBk6E/\n0WeZ6IFQYiNqw6iWjevxpkQQklAJ2NJYcmKD1oYrmZenFB6P5L/TIST+cWSz\npx02wIOKSBI/QHtuMfHGfXumw54kSXyZaQhXcSm6s5Cijvl4PVsVhMCKaIMV\nSOCAqte9lTDyFQZkzc3w/CT+n2rMF+flx9kHCe2xHnY/uXygRbyod+xKzQAW\nzG3PF0pqgnzQv5JpzDTuYFcN5k77g+mmneWjBD3DAmDpnIfvdPGQ5DSKsbFH\nLqK4W7uPj/fwdh2hARE/0EIZAdqTPuJ9eDanUS4CS5jh2OsQYNRd9UDg7ei7\n2itUElme+aTHU8QuDYv+CX6EE8qnv2I1775J7QflxTG6hRH3xxYIwwtuOXs8\nObFEoZ1pHx6a/ya0S9sEyOo36X2tUA2nRD/Q+lm4WxPwDrnDYkXyT3MiysrP\nM1E8\r\n=XRnj\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD2Yy9zk/TzfJuAyWmVJf1eFdhpfYWGEaPaFjBBRw8s7wIhAMxi5lRqtr+y+Ti/8MOIUotsEfWqNHwXOW89uh3MSGKW"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.ab7fc1bf.0_1620323999087_0.5936089851261894"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.25693d60.0":{"name":"@material/mwc-list","version":"0.22.0-canary.25693d60.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.869d890d4.0","@material/dom":"=12.0.0-canary.869d890d4.0","@material/list":"=12.0.0-canary.869d890d4.0","@material/mwc-base":"0.22.0-canary.25693d60.0","@material/mwc-checkbox":"0.22.0-canary.25693d60.0","@material/mwc-radio":"0.22.0-canary.25693d60.0","@material/mwc-ripple":"0.22.0-canary.25693d60.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.869d890d4.0","@material/feature-targeting":"=12.0.0-canary.869d890d4.0","@material/mwc-icon":"0.22.0-canary.25693d60.0","@material/mwc-menu":"0.22.0-canary.25693d60.0","@material/ripple":"=12.0.0-canary.869d890d4.0","@material/rtl":"=12.0.0-canary.869d890d4.0","@material/theme":"=12.0.0-canary.869d890d4.0","@material/typography":"=12.0.0-canary.869d890d4.0"},"publishConfig":{"access":"public"},"gitHead":"89015755bc4d93aab59cd46274331e3a6c467896","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/89015755bc4d93aab59cd46274331e3a6c467896/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.25693d60.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-iorCCr6nFn3Jib62TMRkrkhlfZLseEfnFRTtOEUK3u//j46ccTdX4Uj2DiCfFzPGDv0Cmagccg00a6HTBgjDcQ==","shasum":"4361d4c5eacc4ee066e76904a45bd31f5d355767","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.25693d60.0.tgz","fileCount":45,"unpackedSize":250122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglbeVCRA9TVsSAnZWagAA3wcP/RHwQYKk4n+gyY220qH1\n9QqXgInn5puWRYQH/iSjvPETn6ZXmyIE4TyYwE+W25sf7rduvWESP/Q0OOs1\nn8xx6h3q96LgCXnOeb4ydwiJJuNUnobWZI5YONqhgKPK5oP/R9sF37WImcI4\nEWMCzwbuKu10O+gZl+ohxCgn76Bq5+2CTne7555qErohPEwuuQ3Pc6njacph\nheF6b5DmqlCIPvI/HYIR6bOf0UWZTioh2jEPGcVwwZOPO99c+3E2cXCZ2mgh\n1PRtFKN7XJbPev4jZcJW/hoUYZO7qeo2CEPqM75NmtJfsq1r2tVIZSQG6Xe8\na2aAg11YoYL9Qsh8YYwzDJRJz9VpinJYEyIFD91X3J3zPFd7PYDtzTi2FYMp\nXADtcxMBdzZi4PluSiT3Yg/FmUhCQCVSdCoQDdz7H941kmI/U/rHTDkWNcFH\n7B/Zxmv0ah8lHgUp/i5yodLdol8YJyl0r+cOvpUwYCGuOrZDfbVMac1VHuPo\nKrzvMPjZJ0Xkd3d/8NuVNP5C3ij09puDnDOHCtfBq3XqyLd/kHTOoABXzzs+\n+0g09gGCzzosvpl5SK946zH5pgDNA/r+x7fQZRhZcYOrooed+8cBwO9IXk3V\ntbyLfZGzcYdczSE0qgXUVvRia4oXKgwOYUwk+QvRFFSNIFyxmHzQfre73Bzi\nn6o+\r\n=5l5O\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCBjyYYQp0WrjiILtNevxdBeftBc66AJtpXfQGzKQjj6AIhAIVBrcCg5oglfBTJwdqBqnzewDB5d7c8O2ehOShFVgz4"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.25693d60.0_1620424596828_0.4670445722304608"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.c497962b.0":{"name":"@material/mwc-list","version":"0.22.0-canary.c497962b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.869d890d4.0","@material/dom":"=12.0.0-canary.869d890d4.0","@material/list":"=12.0.0-canary.869d890d4.0","@material/mwc-base":"0.22.0-canary.c497962b.0","@material/mwc-checkbox":"0.22.0-canary.c497962b.0","@material/mwc-radio":"0.22.0-canary.c497962b.0","@material/mwc-ripple":"0.22.0-canary.c497962b.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.869d890d4.0","@material/feature-targeting":"=12.0.0-canary.869d890d4.0","@material/mwc-icon":"0.22.0-canary.c497962b.0","@material/mwc-menu":"0.22.0-canary.c497962b.0","@material/ripple":"=12.0.0-canary.869d890d4.0","@material/rtl":"=12.0.0-canary.869d890d4.0","@material/theme":"=12.0.0-canary.869d890d4.0","@material/typography":"=12.0.0-canary.869d890d4.0"},"publishConfig":{"access":"public"},"gitHead":"be15d892a32bdf28e42617b44e38b301b0ea590c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be15d892a32bdf28e42617b44e38b301b0ea590c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.c497962b.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-znzdw/Xu22EdBBqunFmS9YOuSPW/DL37EOIY/6iAeOuZW4twQ2uDlFfqPigPSKanIU4XYAe96Kbh3BAwXqqE4A==","shasum":"6d15a89c0e53759ae32bc7b6402107d3691ad72d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.c497962b.0.tgz","fileCount":45,"unpackedSize":250122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglb0oCRA9TVsSAnZWagAAeBMP/1EGtyvAb6nAUy8TsRLk\nibA8fsLgl9fzlJHdunLf9v8M6w7nj1xGuU28JZG+rAEoIBdBTtji2im3BszH\nopA7iLCmnJD4HJTpSvpPDgwW9gD2Uu4/sORcRJ9uCEORGs+Ow6qNckqZbRYO\nzBaTTTytx0m0UIkneZFTjAQLXCgUPJVBCt241Z/tJMG85u1wgDIF6RcEXtb5\nrqOz650E7Uxf46j+EqFivj0KXDNDL7iTXvdx/4mp6tgHfiAZWfnUALkLh6vX\nZVrgi9aAxOQ+tp2nWTGzsdPoVwq2t1aJaCYlk7TA2DK3eFkwnC+WZTNPzgEP\nsA8IK3kgPZaDrUKq6HxJxN4IWB6fSce3gTAN3vOCCjKgIgCm+Yta9uh654rM\nMT5XbTP00D6my/CxkILrphM6nY52clUP4kws9UUzso12JeVxyo4uScW4bF00\njp4+8iRr+9G8rH2meWKBwWjDuN90oVAuS05dT2Yz6RUZgVNyfCFyz+QDx/fB\nRuxBepOmlUXIz56H1dKVIZHvwbIo9fIJlZB0lGQLKs/dbMune7xcK0azP9VL\n8GiJ6BIIP7XivJ4KduNyRNPidqUrpwalRgALcse9giY3pvUXfbIyV9HwwjjV\nUlvt26YWQQz00Bt2WA0ihI14Gg2LtFt8Axa49+BeqPbFiK9ABGrFAn3qEk66\nwezB\r\n=B1ol\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDo1ARPXNbEGGn+4YIf+ctKPJi7kH4xbtqQQvm9fBMMEgIgW1huftcjlT5FM9UGmv8Cdb2hnh7e8+VAaqtErKmI+fg="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.c497962b.0_1620426024314_0.6374860527165034"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.e300688e.0":{"name":"@material/mwc-list","version":"0.22.0-canary.e300688e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.869d890d4.0","@material/dom":"=12.0.0-canary.869d890d4.0","@material/list":"=12.0.0-canary.869d890d4.0","@material/mwc-base":"0.22.0-canary.e300688e.0","@material/mwc-checkbox":"0.22.0-canary.e300688e.0","@material/mwc-radio":"0.22.0-canary.e300688e.0","@material/mwc-ripple":"0.22.0-canary.e300688e.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.869d890d4.0","@material/feature-targeting":"=12.0.0-canary.869d890d4.0","@material/mwc-icon":"0.22.0-canary.e300688e.0","@material/mwc-menu":"0.22.0-canary.e300688e.0","@material/ripple":"=12.0.0-canary.869d890d4.0","@material/rtl":"=12.0.0-canary.869d890d4.0","@material/theme":"=12.0.0-canary.869d890d4.0","@material/typography":"=12.0.0-canary.869d890d4.0"},"publishConfig":{"access":"public"},"gitHead":"94ee5e4aa5987e14fc749785fef3b65b73185c74","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/94ee5e4aa5987e14fc749785fef3b65b73185c74/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.e300688e.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-SHAjjfO8aun2ofPSxCbjBBuBGOlmw4NSOHoun9WeQ6QD93wvo2w34BYuHLc6BhYburjzmQb859/wT8qULCriPQ==","shasum":"7f6ee8d5ce923cd4a329d77849ccfacb50024674","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.e300688e.0.tgz","fileCount":45,"unpackedSize":250122,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJglb4zCRA9TVsSAnZWagAAKFAP+wRquG9pMcbA1pUI1aV2\npD+p+x3fl+CIFQIMgzzkv678Twmh4DnuaDZu7dI2Cb800aEP2H+THEiLetIb\n0tdpulWyYr3bLav7l+mv2KTRQPZxwmIiPt9SwRkAef+76St/KQTOQcsG0arG\np4wBVVnvbxKuuc2GFQRlAKE9JszkWg4ULlkInPHP3w6SQIhE7kmB/UXd1g6/\nLjm8GvsQFnsg457tADYs3RL/ml82eMj2acFybnUecMoFggTG2cl2mYZoeBvh\nFxAEkfCAVe08qYBQakKtsNM7nY58qx5Gp277/h3bmHMqQ2hs551Uuc7getxp\nZq5Csvkfj+VzMpINW+v2lXeqSQd+oYZIO1POPUVzaPQ2nXuaTPy10e2lqPYO\n1KO5SxmNQUAMFOUYLes0TUT3Ym5AKZ1Cz49L6PybWQGDBbFrkxyot2hEwcMf\nAiGCf2gKrDwW9e//+XMfMFviQcSreRky6tCBk8t7xoCYAMtqDjpw44gqkebs\nJ3IGMNMn0vzeiibBzOlq3wKAsgd0ybLNXKqYQcwZSdYwDZAK+5x+HaXkaVd4\n6UMo9aS8pITQ/DHfmIzUyA6TSRw59/WplnnOybE8nXBVSyAJ+OMVSN3u8qQj\nGEd9NIn5yCCaOgio/0w7F8cE1Me4p2xQlyjcaLX9TU22NmTSfOIFK+pxtEPb\n7gGJ\r\n=PYc9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHJg6tkVGsDy8+Xk0GTWyWhxKnwYgmm1+H9id7uD3ICUAiEAxSLx6uqe4QAz2akV2uwQ/GnPx2Fd4aenaHLNlaFWGZY="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.e300688e.0_1620426290852_0.15874491297738857"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.d70287f2.0":{"name":"@material/mwc-list","version":"0.22.0-canary.d70287f2.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.869d890d4.0","@material/dom":"=12.0.0-canary.869d890d4.0","@material/list":"=12.0.0-canary.869d890d4.0","@material/mwc-base":"0.22.0-canary.d70287f2.0","@material/mwc-checkbox":"0.22.0-canary.d70287f2.0","@material/mwc-radio":"0.22.0-canary.d70287f2.0","@material/mwc-ripple":"0.22.0-canary.d70287f2.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.869d890d4.0","@material/feature-targeting":"=12.0.0-canary.869d890d4.0","@material/mwc-icon":"0.22.0-canary.d70287f2.0","@material/mwc-menu":"0.22.0-canary.d70287f2.0","@material/ripple":"=12.0.0-canary.869d890d4.0","@material/rtl":"=12.0.0-canary.869d890d4.0","@material/theme":"=12.0.0-canary.869d890d4.0","@material/typography":"=12.0.0-canary.869d890d4.0"},"publishConfig":{"access":"public"},"gitHead":"17a229885fc92f311534b89a9df6549e9b78c204","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/17a229885fc92f311534b89a9df6549e9b78c204/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.d70287f2.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-o/ouClfY0GI6ETnR5RY3H5C2nFgDwG7fFiwj7XUCIy9oMc3kIQdht4wPjXZDkZXrKuFODGeECQVd7oYPbpFTNA==","shasum":"c291856e5522faa89af1044d454d5f71da749f21","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.d70287f2.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmYmuCRA9TVsSAnZWagAAnmEP/2unF5TG1Tsy8BpSVjhF\nY7uFKho3S2KAtDIYMxUfglGg9C6Nisc4bS3EpCBW+YR3vaj/MgxwVZ4/NTCV\nHvb0FTCrrXAJaQzFfL/ByxNsUOK8ZOmYrr1Ysz+/TpsCsn4t6Ca9SYc+oec0\n8D410GcutTMczq7coqqxdEKeQ/0STOEnDRBIpGY5bqSaEM7sUObq7VuodPRn\nwUiItvdJaUmm8M3tfz4fHzYM9wXmYYSEE4tE25ZAvEGWAQCy9NOqbmzpchZ/\nSLyUaHUTvgyJmp/b/1hEoqdYUp59Q13aWUbIprMPHg70hI41S2wXYmoCgrur\n2iwl6f+Nm+kBvgSkrl6VI9mZhthgTZ1en5DM+f3KGUUK9XpT604BVwVKJuav\nM+v98RJ29XwWZq76iCG1MdCY3HfR8snYURc4+MVM4DqvedHnF0akbeoCZ6gR\ng06/yb/m/flpR4RbzdPejlcdBj7++5ZWNLdVK0oKafkvKQo37SlcED9+rCa6\nvnaEmHOlkupF3IM8jWdDWcG9Tvh1YAbFtqJLfx9EdwGg2VnoBj2fZxpD5iqA\n4WuVFO0nwy5FPWJdg/9C9X8qPoCe2scdKwchbGkypREqa0KTtT3yN/EzeTaT\nxN7Wf76Am0logzo05vVvHKbZNdR/0c40CAH4aGQ7ClyQzNE19aIpI6a/+ZoO\nigj2\r\n=SLDU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCixustZPuZegj0J1eXms5JmlvrQe+JzBj0D8Si8hY2RgIhAPHib95914oFrIsNIYd1GPbzMArE4dn/lD0s6EBTjjgo"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.d70287f2.0_1620674990046_0.9239256072740376"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.02e841b2.0":{"name":"@material/mwc-list","version":"0.22.0-canary.02e841b2.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.869d890d4.0","@material/dom":"=12.0.0-canary.869d890d4.0","@material/list":"=12.0.0-canary.869d890d4.0","@material/mwc-base":"0.22.0-canary.02e841b2.0","@material/mwc-checkbox":"0.22.0-canary.02e841b2.0","@material/mwc-radio":"0.22.0-canary.02e841b2.0","@material/mwc-ripple":"0.22.0-canary.02e841b2.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.869d890d4.0","@material/feature-targeting":"=12.0.0-canary.869d890d4.0","@material/mwc-icon":"0.22.0-canary.02e841b2.0","@material/mwc-menu":"0.22.0-canary.02e841b2.0","@material/ripple":"=12.0.0-canary.869d890d4.0","@material/rtl":"=12.0.0-canary.869d890d4.0","@material/theme":"=12.0.0-canary.869d890d4.0","@material/typography":"=12.0.0-canary.869d890d4.0"},"publishConfig":{"access":"public"},"gitHead":"10f49288fa74318f178daebc0299b7da22137eae","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/10f49288fa74318f178daebc0299b7da22137eae/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.02e841b2.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-kC+xWr6S7QHU9NLt6tEqlr5Jx6EcWNWRVCkQB1nsAk89nG1pvVZKO2QjYg616DMAnxrI8LMVW/qsk26mZF64xg==","shasum":"aee251b278a5e7761b271a2dc06d6ad0565d9c78","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.02e841b2.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmZj6CRA9TVsSAnZWagAAdpQP/Ru55N0FSoEFotUY/smQ\nM18OIbYqNwvB1l4mf5GG2DX2imT5YEXTXBb8SEOzz7wsIZcZgG9MEJM7CPGp\nxdz7BeHNOeJ+rLptQ2QaQ1CnDo4SEGyxF1gWNyd64LNiAzFKzSncncNe4BkO\n/dIVpiobkfJHs5swp22wbi0BvIZHgifaK/Uolc01DRzcHDaDZnR5PucHBjd0\nkDdLhcKlAZqYDz++7v3y2ygTxvXjD7wh7zMF4G2uUfMe27NnMJendtyv9UUF\n+Pj564m0XCmBqnfRkoYe4tyQHMsuahEHlx7WIpKlBBeZ4VKguZdV+xYDffZc\nq3iZB04oA7aHo9E88h7PPWkUTq24VMkxIvrQWeda0nLvbb8bJPSC6cl9hr9B\nklewld2KuNkj8FqSPiO3D715mHHc7upinoIteVzIugfOqTvnPHl3zATzcCSj\ncpV/+fmhvmk3EW6numnfp3y+XeyWRSWlKGcXkJTtwpHAlGHXoyhNo1L5zqrT\nDbu64XOcma8XSozBggI1ZfKEKRuGYXBPf/pj1AClxJTS6Z1fYfaHqqBwkNZ5\n8vliTEPPOtuGs5eKuVIIymDF9IV9bZAz1ie8jHrA24CmD7PMmVVSuVX4hMvN\nvTyeswkl8AW3h7YusC6DbcnT+N8EiT9aj5wMI6dWbklW6JzKIvdMK+zKJ2OW\nUAxg\r\n=9aXC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEJyAe4HJ6RrEEXq6pFy3Spws/lYMUYWLqV+LJ4A3yyEAiAmHq9GDIioQx522qb31olAsbt6xDz5f/jvXDOQ4ENYVA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.02e841b2.0_1620678905582_0.12141712711931985"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.badda2f0.0":{"name":"@material/mwc-list","version":"0.22.0-canary.badda2f0.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.ec22e1da9.0","@material/dom":"=12.0.0-canary.ec22e1da9.0","@material/list":"=12.0.0-canary.ec22e1da9.0","@material/mwc-base":"0.22.0-canary.badda2f0.0","@material/mwc-checkbox":"0.22.0-canary.badda2f0.0","@material/mwc-radio":"0.22.0-canary.badda2f0.0","@material/mwc-ripple":"0.22.0-canary.badda2f0.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.ec22e1da9.0","@material/feature-targeting":"=12.0.0-canary.ec22e1da9.0","@material/mwc-icon":"0.22.0-canary.badda2f0.0","@material/mwc-menu":"0.22.0-canary.badda2f0.0","@material/ripple":"=12.0.0-canary.ec22e1da9.0","@material/rtl":"=12.0.0-canary.ec22e1da9.0","@material/theme":"=12.0.0-canary.ec22e1da9.0","@material/typography":"=12.0.0-canary.ec22e1da9.0"},"publishConfig":{"access":"public"},"gitHead":"961b6b76093a7229e8b8672e9dba3c2f9af0e61b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/961b6b76093a7229e8b8672e9dba3c2f9af0e61b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.badda2f0.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-Qa2GUFCYodsVCzGbspj5Rj9Ej769QFFq5pL9/CfhGbtiek3AyvoBQPd8YkrTRQt3hKsD1im52XjZE1P/I2Lvzg==","shasum":"d23997af2b51d880800b3ef6468ded06f28e00a2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.badda2f0.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmdE9CRA9TVsSAnZWagAA5f8P/jNGSjA3UKB/DhMQ5NZr\nqNUXBH1ktkw131lKnmxJi1R2wTTgIsVE/mKT3/d/iop+2/QtcANBvtJ34otz\nAcXkeRwxau7NT6VFLLTXS0KJaYoh/yiwKi/f+qQsjf95+HaLs/wgtC83qN0+\n0xppt82tAoR1PvKA0FKs+42jdQfZkXDkiD2SRHVSQQkvuJ1mttTkkDkEe8wd\n067SS5fAdrL+kSUG/ra0VDR9aSW2SZJRlIFpVWb88GQuSmJJq+RAZ8MPWuwg\nB2fRmuRoCIkgCYEo9AHtKYsvqJ65nrlkuZJnpeD5/Ow0Fi9afWL1zb3x/xd0\nGI6whfaQ0hWr4NjL4m4/SGMr7vfLzXSp5yLDHJ5DQm/OJuWJ1AFUzvByspuK\nLm2BnI2NJ+k4vpJK+pU8dUl6DaaOlGvTmilF/gKnyhJCldraPFzgdX9w7lG+\nW6Z5ROM6qjCRDDqH5lwfyxRMo6fsqYaXXoJYHS7uPPl+F7qQCQ2G55x8bbjE\n2GAbWPlYc+mNpAtr25HX7iSgy88BHxnznU7wl/p0U4vsk7Mw92UEwyY3eMVO\n2r7G4z8QqFhKSLBKKOucrt0O20eP8BECY2XxSMEGXN9nvPan8fgXHSBLOXo+\nXi1Jupxek28NSgOu3wff4GuBFDYDxxO7TWDdvCBtCPrf39R6AvxxA0tqoXGT\nuLIr\r\n=Zt2e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD+ecv1d3mKvWf0Vs+Q0JYt38qGHnG/Tp5P0wfmgNbaDgIhAPw+byZ+w+EeUw8vNt7H1gwHsfe5xe20yhLcdt1ZClvt"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.badda2f0.0_1620693309491_0.34088529534292156"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.004aca62.0":{"name":"@material/mwc-list","version":"0.22.0-canary.004aca62.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.ec22e1da9.0","@material/dom":"=12.0.0-canary.ec22e1da9.0","@material/list":"=12.0.0-canary.ec22e1da9.0","@material/mwc-base":"0.22.0-canary.004aca62.0","@material/mwc-checkbox":"0.22.0-canary.004aca62.0","@material/mwc-radio":"0.22.0-canary.004aca62.0","@material/mwc-ripple":"0.22.0-canary.004aca62.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.ec22e1da9.0","@material/feature-targeting":"=12.0.0-canary.ec22e1da9.0","@material/mwc-icon":"0.22.0-canary.004aca62.0","@material/mwc-menu":"0.22.0-canary.004aca62.0","@material/ripple":"=12.0.0-canary.ec22e1da9.0","@material/rtl":"=12.0.0-canary.ec22e1da9.0","@material/theme":"=12.0.0-canary.ec22e1da9.0","@material/typography":"=12.0.0-canary.ec22e1da9.0"},"publishConfig":{"access":"public"},"gitHead":"3c20c30c670567ff3483811cc2d47a795de96151","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3c20c30c670567ff3483811cc2d47a795de96151/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.004aca62.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-drmZptwNmeajORqx8uiyAoUKflF+ehGA3jNSUxy5t0+RlrDwvb0lwelKTtbz/vmcVVBm9/3hopvzlPWwGwNvGg==","shasum":"77d5d7a6132060fdb6b06566f15d87575de4ed62","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.004aca62.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmse8CRA9TVsSAnZWagAA3gIP/2o/cYuwnyk9kjSjIys9\nkHJAit+CnRSiB53nry+0k4SZJ7iYbRmME5gMS70DLYagr+E+5lNOPMznyGz8\niODdlr8bMCtBO4i0Hg9jbss2zA7s957gY0T2SeBcTKzzzoZcvG/YwoVaysO0\ngXqGseBP/qEb/L0O6wg2V02HOk18RVDW5n9tiC64copG32T0EFufHJBS4xDG\najMxwTwA3/21ZR/1JClz+kkGVAgsMMzE3T8yig/FBCLcUAo354HyZ1RJnlrR\nHgLNJP5qC9jwEQis99fJ0psjnTPkfPPqynJwNqnIOHYtX4EObIYN0elsjZOl\nsR8pJjZJD/PYeJACniX8xAIw6Y91ADbVVfZEn0xP3H8j1MQ/K5Bbom0ZDWQB\nTg2kK9S/qP3GUlKgoCmM06c7D9pdkrIHMO3ceof4rgEPp8yJ1NF78spytewe\nUrMZJN8J5zCHUWo8nPJ/YFta/V2zYhelKJ1TzJEPcVH8OvfieZ7mITixmI3r\neToFP4awU9M6QtLnBLfRBiiwK0xt0tEfYsMpdgjyFTxU1q1QzSpKFVFlr0p8\nbD6kxLb7nBcjUMlBj8VOlpDNW2ZO1t9obtfeYNGa9Ib8fY6cBDUh7J2sCdsn\nrFAiEAlrALRMAphmDuBy8rMV77+vcdU2PBIH2OzkswPtdMu7bHPlv+rMAfY6\nFiWe\r\n=ftw9\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMU3ZHDwQXLRqDF8jK1J7AYfkLuq753t4rrRZC7IuIUAIhAOmJuxC5wLQGbrWrZBFwyt3iJDm+BbPnaw7tjgA3D1Oe"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.004aca62.0_1620756411848_0.9583792319740911"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.4af17446.0":{"name":"@material/mwc-list","version":"0.22.0-canary.4af17446.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.ec22e1da9.0","@material/dom":"=12.0.0-canary.ec22e1da9.0","@material/list":"=12.0.0-canary.ec22e1da9.0","@material/mwc-base":"0.22.0-canary.4af17446.0","@material/mwc-checkbox":"0.22.0-canary.4af17446.0","@material/mwc-radio":"0.22.0-canary.4af17446.0","@material/mwc-ripple":"0.22.0-canary.4af17446.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.ec22e1da9.0","@material/feature-targeting":"=12.0.0-canary.ec22e1da9.0","@material/mwc-icon":"0.22.0-canary.4af17446.0","@material/mwc-menu":"0.22.0-canary.4af17446.0","@material/ripple":"=12.0.0-canary.ec22e1da9.0","@material/rtl":"=12.0.0-canary.ec22e1da9.0","@material/theme":"=12.0.0-canary.ec22e1da9.0","@material/typography":"=12.0.0-canary.ec22e1da9.0"},"publishConfig":{"access":"public"},"gitHead":"8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8065f1d05fae5a2ca4f95b50302cd5d56d43ea4b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.4af17446.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-tWtuu/x7cx2AKAKwwHTRSuzGWlFjsmST6d+D/NlN9JcAL31O4E94ThqiyoeoBtuR2vh1qQmb7p0KQIbjPpzkLQ==","shasum":"b04b85cc127fd6ac7e3d39e3748c999362e58e6f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.4af17446.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmtENCRA9TVsSAnZWagAARxoQAKEZFDbQnDiqWA0anvh2\nL9diE8QBr9zHik7sRQCD2S12gZooGedrqwe5om2xqvYFeMWAEwAi5DKoPvAX\n8P1gY8wgy3a84UzmBbflkkuuJQp0Mw+rn0sNhPAJF1Xl2rIfMcGf5czjqjmX\nRURr3/wl+5nkEpd2/KrjPFv7zY8zz/vXL1YSjXo2sodT551SPFzG3RrDrCgf\nao1GT814g1JKzBh2gei7TX7QcylGW2Ml3aBUW8PvcOmbew40m68ebGWNbwe9\np7yLkgOYBflSMZlgKVo/2MD42XYRwNIt3AS60FrZ/0SXx+mcHIpmjkXhuRdd\n3lEFzxTsYhghfnZScxb9fXwt8qTH9yCOm28vniWOClaTQv3M1SnlQiSknPpW\njUsywLy6dE5T6AWfeVlneF7MVLI9VohXdh+swhZ3fKAdPx3jdkK4nqt0lYXt\nV/uEcvEWWL7Lm9Yd/2jmYXfrHpDPNYV6jvwzwOPskk9F0lLLvzyXay65O4HE\n5dnN7PiLaDYSnzmd0UniNzXy9diiVTSTq9JnnlOiVuWumwckgUfEG6vR1DH7\nyJ8sTEGnp1ZCmxVxJHksE8zIIMnE4HYAzWgVUg4ickaE0NSO+nQkFF5B9kdS\np4NXGm+RYnryrvl86yYedsqQFnG8r2TOTAvLpD9lpV12tbUCT5DHv3GAUfqb\nbamO\r\n=CQH1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCi/DvbXEWUg3zOHxml70HX9dRTnfJ4ja9VIq8cqfQntQIgP5fsCh9SQRTawFc/R/6d1AM1XAG7c0jMveqmxnRvQok="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.4af17446.0_1620758797561_0.8029767083814547"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.b94d7187.0":{"name":"@material/mwc-list","version":"0.22.0-canary.b94d7187.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.ec22e1da9.0","@material/dom":"=12.0.0-canary.ec22e1da9.0","@material/list":"=12.0.0-canary.ec22e1da9.0","@material/mwc-base":"0.22.0-canary.b94d7187.0","@material/mwc-checkbox":"0.22.0-canary.b94d7187.0","@material/mwc-radio":"0.22.0-canary.b94d7187.0","@material/mwc-ripple":"0.22.0-canary.b94d7187.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.ec22e1da9.0","@material/feature-targeting":"=12.0.0-canary.ec22e1da9.0","@material/mwc-icon":"0.22.0-canary.b94d7187.0","@material/mwc-menu":"0.22.0-canary.b94d7187.0","@material/ripple":"=12.0.0-canary.ec22e1da9.0","@material/rtl":"=12.0.0-canary.ec22e1da9.0","@material/theme":"=12.0.0-canary.ec22e1da9.0","@material/typography":"=12.0.0-canary.ec22e1da9.0"},"publishConfig":{"access":"public"},"gitHead":"0b32af6d751df8cf58980e7badd64494f9396b00","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b32af6d751df8cf58980e7badd64494f9396b00/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.b94d7187.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-ysc5S2Ft/p0+NOoDHIWG08+40cdv5M0I1eeTbeMI56hd2xxCcqYx+1onHQ75lfRFF7K3khW39HWzrf4fabNBAA==","shasum":"98c99e20b76031459a4ec6c0c3f9526040d10b7a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.b94d7187.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgmtJbCRA9TVsSAnZWagAA0GcP/RKtbP3HOPAqD+d+CklA\n13m1d6NIzLerg1YrJHCpz5+o29kIya4MVNjEnhkINsJnVtBntA/ePztYWFdq\nbTalhFnSvYqAu567QDwV39g4f11jEPM2xleN5t91wB9uCU3g34quqAvkcG98\nz9DRzF56ENT9weFqO0+8gw1ji5ea7sop5STB6x6mR2V6zpJLYxuMiHE8RqN0\nvet5tT+AoC5eEmBsqfjgBxWkfkfv9C9+UoOoTp9qxFI4RrezIsRoAuk2l4Iz\nybKHj9z0rk/lCBAx4fLaWfbMyq4IEfjU9JK6/17k0uH425RE/UbDaHUI7CbS\nyEukHKMvnuLDsiWfvZyaHoYFcuNXAD4QIm7V03VK5FY1qXfAA03AZptm0FXx\nZPx82jfoNvWSQ+qofa3emFueO1EoC/0XkPGBwdQYhmpXwUg9FuRjrg1+uENg\nRKyoxcOK1wv+F14M1jM4C+EJRZi/bcxIth1Zi9TAg0lgsoI6q9xT0ZkfzOBt\nipnIvKNUaMDmklnFCfccnvggfYRzX1fUJHdYtAMrf2I4uoOHKfo9vqP3HxGL\n1RKsbjOAViuRVqp9HeqKvBrBMD2P+BzMQijYxfbvb4rvW4KDy4Q/WRKAlP9C\np4MPl9x827rfaDX/4PNYBIMNZ8oL7GODehckZw7mQPS3lR+EnZr511R/YqyS\ntUr2\r\n=JesC\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA8s3cZYFtkfkfPS+iZA+hFL28APaBA8N7YYgZAWy9HoAiAjq2fWhxgBrA8uGPKai//WNf1qrr1Tz6NW2vmmyO6hdA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.b94d7187.0_1620759130619_0.872390588463509"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.4021b2f9.0":{"name":"@material/mwc-list","version":"0.22.0-canary.4021b2f9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.a23ecb682.0","@material/dom":"=12.0.0-canary.a23ecb682.0","@material/list":"=12.0.0-canary.a23ecb682.0","@material/mwc-base":"0.22.0-canary.4021b2f9.0","@material/mwc-checkbox":"0.22.0-canary.4021b2f9.0","@material/mwc-radio":"0.22.0-canary.4021b2f9.0","@material/mwc-ripple":"0.22.0-canary.4021b2f9.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.a23ecb682.0","@material/feature-targeting":"=12.0.0-canary.a23ecb682.0","@material/mwc-icon":"0.22.0-canary.4021b2f9.0","@material/mwc-menu":"0.22.0-canary.4021b2f9.0","@material/ripple":"=12.0.0-canary.a23ecb682.0","@material/rtl":"=12.0.0-canary.a23ecb682.0","@material/theme":"=12.0.0-canary.a23ecb682.0","@material/typography":"=12.0.0-canary.a23ecb682.0"},"publishConfig":{"access":"public"},"gitHead":"535a4442352f807e1f7e655d0a135c6d12906ed7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/535a4442352f807e1f7e655d0a135c6d12906ed7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.4021b2f9.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-ZN6nP1wowHrtqiKKX2sPEX+q7bJHIB++5JeiD4QIdK7IcM89FXcqHp5ualVyeCcAJr0sYvQ2DBNTXXv3+zHCjw==","shasum":"7e03ebe5089fbf1f41c7e421389bb8899eec0de6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.4021b2f9.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnFAkCRA9TVsSAnZWagAAJKgP/RJEzBq/kCQtNZK1ZeKe\nt/ub9SwMdpvDsgxHdrMX+Cbj8J6v9rufIZ6oEg5iuYzrKmO1wZY17R439ob9\nn1kSc/SBO42JT+/sLogRU7/ioA1xU2yx50TS7kJbmSxkk0T09oHwpfoG2uwE\nrlKID+XxJ/fHf04hH2SmPXf8i1ilsKV4aOzYhUYzF7tdv7qQzbVKbZlsRfGY\na8h9mZFP9wRpiiBu5OWBoMzydhPP1H+aFALywgpJ8l3sBbbnEM8E6UWd2GHX\ncU3WqHoQ8FFJ1xmpdFupSGA95PHV3gz7p/x78MwbJn8Btgc+zyZe8denWd/C\nQnCRDq4yB9uSKnT6FyCSjIZIBlK06SoBEa78XrFiFcJHcTF930xEA7hXOu+V\nQv1eiCfim4IDrgYsn3XtjS5EJBFehvMY2RtHYNV6bDI4uO6oaa9xjfyYe59s\nmsWCM2Qs8tddCnznpaTmphHqebP2XQa2uFw5Z8CyGcf+0cdgF1lnp16/c+1D\nOW1TWSzlG2GcuzqkfxyyOHrUbnedYOpOF1g/faa2wJyE39UwYNzPbj1iKeB8\n5nwDbFlNzr0FFnhndlEAJ+iR+h1aAUostZZDaeKtqH9Yf/ouY/2cpf2QH5CS\n9WIRCLpCl3OnghndwzaGhn372h8YbcrHwLyg541zecHOjjlrjYCOmukkS6Y+\nrbKS\r\n=kF6/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGBG02cbSt8u9+OMYMK/LM3uGpec3aw0WX+fr6hgOOTvAiBF+0F6DmGhENcOj6lQFQAL3kRnsCtvS7ctYPVP3Dn9xg=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.4021b2f9.0_1620856868290_0.19421962303591878"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.6a5956a3.0":{"name":"@material/mwc-list","version":"0.22.0-canary.6a5956a3.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.a23ecb682.0","@material/dom":"=12.0.0-canary.a23ecb682.0","@material/list":"=12.0.0-canary.a23ecb682.0","@material/mwc-base":"0.22.0-canary.6a5956a3.0","@material/mwc-checkbox":"0.22.0-canary.6a5956a3.0","@material/mwc-radio":"0.22.0-canary.6a5956a3.0","@material/mwc-ripple":"0.22.0-canary.6a5956a3.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.a23ecb682.0","@material/feature-targeting":"=12.0.0-canary.a23ecb682.0","@material/mwc-icon":"0.22.0-canary.6a5956a3.0","@material/mwc-menu":"0.22.0-canary.6a5956a3.0","@material/ripple":"=12.0.0-canary.a23ecb682.0","@material/rtl":"=12.0.0-canary.a23ecb682.0","@material/theme":"=12.0.0-canary.a23ecb682.0","@material/typography":"=12.0.0-canary.a23ecb682.0"},"publishConfig":{"access":"public"},"gitHead":"1164d783391049aa2ff9412e519af87df40b5406","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1164d783391049aa2ff9412e519af87df40b5406/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.6a5956a3.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-vITN1W+vA/bEMPFH11BywZ7qgIwkjGN2vKmpijt+1tVzuWwLGWgFJ6eJjwEuwYMel6sG/h9cCjfTY1YBHTOkDw==","shasum":"2fe5589ff0955a74be338d2a63f04e445dc93aba","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.6a5956a3.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnFQQCRA9TVsSAnZWagAAJQEP/ApeYbMZpYbgkLmx4g3+\n9QjLnePIBqn9QxNmaFnSSgq5A8y57TIWrG96pJrlZfHlETR53WUgC0WarEM8\nnaqA5oomsYTCC5AmP2V12S7PU2c/vB09+YA+K6QcV9XwlF2R+kwOg4n7pJex\nS7d03pwaEidRhOcEnn7WywxaSkmVJVfyVtpFJnkB8DiYygdVAUwllOtRQ2E/\nbR+A7fW3lekgir7YIHVoAY4pJ68VCLW3GEDTKLKr0qur41RHhYsKVk+KP0ED\niHOzbiDklyz62dEW6Z0rb9iy4dPJLGLUcKNnK3GBLMHivRqUTNXsny+PyRCU\nAWspIRKhfqzlQAX1ypiaxXvnbiglQo8RC5r17vJqdikS12nHlv3fx69y4EuB\n/XJxGLD/ZFf8rigoPxtYyelJ3Hd8NsHfJzS/HHhmKRtMbdNplRLYTfH3w5oH\nSswaImWF1iRdydRwgNI3qDbdAf70HfujSPuG4eezuOOiViJVRHDtrRmWhlgp\nBO4FPfXPfI1JtSbZlk45WuCoPG8YnK0miKL6gU5rEWh3zxYDERhAFL/aOQLJ\nnKuXJvWwAGepeuJ11pur3z+aK39YUe3yaeoVIZvxDXIVtFZ7sv04aMVrV9Sb\nfN5uuQCX/+0sBi3YRHuOZb+UkJb5oXrNDUFbYIwqIVfxA22CDSR3C8MS9+hS\nrVCP\r\n=Of2D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEjz6umShopJNavTDuabZiZxSukPce4X1ZaeeFFvdlIwIgAc48NA0/9yCyMxEjJsU9E6ak712+6wYeh3fa697c/MU="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.6a5956a3.0_1620857872469_0.5875598805602928"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.b6e8a74b.0":{"name":"@material/mwc-list","version":"0.22.0-canary.b6e8a74b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.a23ecb682.0","@material/dom":"=12.0.0-canary.a23ecb682.0","@material/list":"=12.0.0-canary.a23ecb682.0","@material/mwc-base":"0.22.0-canary.b6e8a74b.0","@material/mwc-checkbox":"0.22.0-canary.b6e8a74b.0","@material/mwc-radio":"0.22.0-canary.b6e8a74b.0","@material/mwc-ripple":"0.22.0-canary.b6e8a74b.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.a23ecb682.0","@material/feature-targeting":"=12.0.0-canary.a23ecb682.0","@material/mwc-icon":"0.22.0-canary.b6e8a74b.0","@material/mwc-menu":"0.22.0-canary.b6e8a74b.0","@material/ripple":"=12.0.0-canary.a23ecb682.0","@material/rtl":"=12.0.0-canary.a23ecb682.0","@material/theme":"=12.0.0-canary.a23ecb682.0","@material/typography":"=12.0.0-canary.a23ecb682.0"},"publishConfig":{"access":"public"},"gitHead":"09c41b7e9637c49faa75e5ac84cc73c8bb5f80df","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/09c41b7e9637c49faa75e5ac84cc73c8bb5f80df/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.b6e8a74b.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-UV1BoQGeRISv3t96JEUCEzwi3mZJiIwD55TmXFq0lSS5DV6tuYfOnQcwfeHZ/31sA6F095SsQ/yOej8TcvQtkQ==","shasum":"c284b0a4ca66d57ae2f9b37bcfa61d25d0c24be6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.b6e8a74b.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnF7ZCRA9TVsSAnZWagAAW10P/3qrbhTBit7WP0EN7Bru\n+zEDIvbbbM2Arq9WJkdN+8CdICHjwI5lgd8l799wGZo/iA8pZA4evyM/JLzd\n3qSB03QF29ozsO+8zpeJBADkOvovSXDS/zOZ7amxS1dLxQb1fTrhP38eHB1t\nxjG9mHtQZ3wAen6NfbqSKftZXr6+vyEBqwR7Gp44EdOIVcDpcHC+GYLTHA6d\nU7PQUayYzdf8ZfXgjoAFhye/8Nr1rGRsWjP5GvYKSYfK+w5fJDC+upQRnqZZ\n8lgxUCJCVZAtJFYKmemkQlTcHwWnrIHmvJAz0ZdpXo1jKYPFPdKvxI6n3F3T\npyqF9eW4Mo28F/ccAoqd++DqK/XHIbFnCmBuvlabbnC5RYNnylWIpTfylrQb\nBREokygeBBkM6OUGl31ZcUBMG9RX0+sI7JSNIBxNpq1rJ+cldeZw++6Z6hpj\noJHMRywVJe9Foo1Wkjnl3yXgt8zkO8Qy8WW5IQ5br6cjaBgCaB6DiNyvarwb\nJtvd/0Uu/8GJykXcHvF3tW/4OIpj8VkxVBTgMq48TP4quFUZwvwOQhZ21bXS\nogswtdgR+Nlq0ZX6OhA9mWPFzwxKM7PXvE7fy7TR94UELZZCsosXVcoClsDt\n52cuVC04f4wRcvh0evzMCAkFgOfKDxkSsLSnDXL1eOEhEe2G5vI0JanSuibb\n/eJP\r\n=s121\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC5APA7yhgz1RAcqp0pigONd7Mx+1SdGO84nrz0BkGq5wIhAO33ETedQiTt2rM11E0sJRsl3HWjYukSRSj7IJ/fPhWz"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.b6e8a74b.0_1620860632968_0.033847557940702266"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.c94e1030.0":{"name":"@material/mwc-list","version":"0.22.0-canary.c94e1030.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.a23ecb682.0","@material/dom":"=12.0.0-canary.a23ecb682.0","@material/list":"=12.0.0-canary.a23ecb682.0","@material/mwc-base":"0.22.0-canary.c94e1030.0","@material/mwc-checkbox":"0.22.0-canary.c94e1030.0","@material/mwc-radio":"0.22.0-canary.c94e1030.0","@material/mwc-ripple":"0.22.0-canary.c94e1030.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.a23ecb682.0","@material/feature-targeting":"=12.0.0-canary.a23ecb682.0","@material/mwc-icon":"0.22.0-canary.c94e1030.0","@material/mwc-menu":"0.22.0-canary.c94e1030.0","@material/ripple":"=12.0.0-canary.a23ecb682.0","@material/rtl":"=12.0.0-canary.a23ecb682.0","@material/theme":"=12.0.0-canary.a23ecb682.0","@material/typography":"=12.0.0-canary.a23ecb682.0"},"publishConfig":{"access":"public"},"gitHead":"01e4fa09129b5963d59405355762cbd1962f1198","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/01e4fa09129b5963d59405355762cbd1962f1198/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.c94e1030.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-egej/RbHVbUZarKuuirzHM+ZBn6KkOKkcsA3b1YbwH6ldLbhizjSkhmGmOZq6fBUzpHKP4B9Q2eCDEeYykCIPQ==","shasum":"d5f53ce88bf0beac67f61587cab6a35b4df99df6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.c94e1030.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnGA0CRA9TVsSAnZWagAAmosP/1Ur9SJLywvQPxQ8bd3v\n3toHDk3VnMyTEZB4ZWJPbQg5JBqRDNGCZuOfhlder6ybEgHA/61fv+GHItSw\nWhnqq3z1AS/hC0Tqv3zjmednOpHO1rwJfERzZD+a9zTWHgvnsWuZFoommeWK\nebN4J960Mm0sZMiozpGN7bMX0ZvPs2XO8WsaOi88NswTTdoGUXl//Qn3kWVW\nktj8ijstC76TcssjPzncdynR2bSMx/z81nAz/SJKIFZsKgyCPWDxGcmDRoeV\nLKDWS9Qoabz5d3tZG21125hwUsETyupW7hMPJrUcQMhyhcPZjC29yl8Jjkff\nnEcfHw9UE0T+GAYSbX2g1jILriHMyHyeZKN/A/ubAJtd7AzxdoRksE64npnR\nLXIcFhc0WoN9y+Bw03cw4LUVgcyJO578ExoD8YuXlzUeS/O3h43QRXnIeWjF\nlszY2+iLubHjGTgnQ90EAaSPTlFSNskwDcZTNHsF+sAK2ct3I1GIgqLPJRmX\nkyUqMp/dPvWZF9rngdJIIW1OC4FWQ54gQU8rZI9Vrue8ALmEimXHFlJNFU0C\nGP5kX76rTF0OaTH2SB1/hLpHpTRJxaIp0MqssHeILzZMUrFXhxUzXHWdvlF/\niSKBHhLk3X7FZla/qJPn0lWpoMUGvLyVDgr+FXvS1tATO5g+p6Z4BOagsIY2\nvRYX\r\n=4J9L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE8646btZbo2l0BRXYC04yJ58ya8ypyjOT0thqioWkbmAiEAmrw6IUhgtArk9WXYLt/DP7pn1CUEUW9yyqer336z6e4="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.c94e1030.0_1620860980428_0.4196434264689841"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.40a34e35.0":{"name":"@material/mwc-list","version":"0.22.0-canary.40a34e35.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.a23ecb682.0","@material/dom":"=12.0.0-canary.a23ecb682.0","@material/list":"=12.0.0-canary.a23ecb682.0","@material/mwc-base":"0.22.0-canary.40a34e35.0","@material/mwc-checkbox":"0.22.0-canary.40a34e35.0","@material/mwc-radio":"0.22.0-canary.40a34e35.0","@material/mwc-ripple":"0.22.0-canary.40a34e35.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.a23ecb682.0","@material/feature-targeting":"=12.0.0-canary.a23ecb682.0","@material/mwc-icon":"0.22.0-canary.40a34e35.0","@material/mwc-menu":"0.22.0-canary.40a34e35.0","@material/ripple":"=12.0.0-canary.a23ecb682.0","@material/rtl":"=12.0.0-canary.a23ecb682.0","@material/theme":"=12.0.0-canary.a23ecb682.0","@material/typography":"=12.0.0-canary.a23ecb682.0"},"publishConfig":{"access":"public"},"gitHead":"6cf3913b43a92723ad4d1144b964df3a8667ed7e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cf3913b43a92723ad4d1144b964df3a8667ed7e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.40a34e35.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-Feciar6+SSmXsSXy1Es4e3Nxo85U70PHTKH60WXG8EuGk/ZlgKfdeXWa02X4dZzanPrtuotrhCL2/j2Yi4DOhQ==","shasum":"7b41bac7ec68820561853ecbbf2513d309e02812","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.40a34e35.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnGvBCRA9TVsSAnZWagAAEEwP+gMHk4+VlseyJDooKc7x\nSXc8TeHKGqZWLoC6LgNO0HrpLhqTTeiIjIsos+Qjmd92wx11kwoMh2Jc0liW\nPKtx8f8j2RJ2oHmlcmz175oUdXxTWY/FdWaJPqaEccxKllNynmrvsPOn1/tf\nImKPpaUMM+qeLD+XTHyHfZCqvRaGIMLtasYtio3E969X4WzHa+HrYEsClALc\n41SZ6o1V23oP+hjviaM6G1qB4EDXdWvWFVr83LYEfvY66uQS8V/126iqhc3P\nFE0CzalmpO5/rT2zoYDReLi/yVjvo2varcAtg6ivA62qGdB7mNtGquM7wn7Y\n+fF2swPdYAQgrMj9l+Pk0mTucEQtW9iZ8MYScv3fO/5wNYVQrPDBrSMgwRGK\n2ML9XxOenj7HLlBv3DkSSBsMWrUp9GVAq/tc1bbj1h64WFrf7PpqqG99e+VY\nkfOn2IZYa7PNQPTyJv2YZjV7Hp4ph7mMsbG2La6PHQrfpiqmcJI3cyr81hPp\n0Q9UjelJ6DEF3NlPKJtK/9X56qupfJUl879kAYtEriEbWIucOVyIpPrY6T4U\niTDaMf5L2gbVOGmC680/Pxzs345gnDxq9NQlbpPz24d2jaONhBLLArYoM24w\nN8fOi7rJ5Ab33Z5ALjhAeMlTapXqwkR6t+iHiRu/ylDnyT5OX8ajVgXzNNrb\njgMX\r\n=QSou\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC8La0P/Qtzu5kXy/+K5c8K0szQ99WTjSA7PhuBqv2AQgIhAKJAGr+kDM6prgF07GPFH1ZQEGsF9nxkWLyR8GpUK/B9"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.40a34e35.0_1620863936852_0.9101331493868059"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.1be14d2c.0":{"name":"@material/mwc-list","version":"0.22.0-canary.1be14d2c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.a23ecb682.0","@material/dom":"=12.0.0-canary.a23ecb682.0","@material/list":"=12.0.0-canary.a23ecb682.0","@material/mwc-base":"0.22.0-canary.1be14d2c.0","@material/mwc-checkbox":"0.22.0-canary.1be14d2c.0","@material/mwc-radio":"0.22.0-canary.1be14d2c.0","@material/mwc-ripple":"0.22.0-canary.1be14d2c.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.a23ecb682.0","@material/feature-targeting":"=12.0.0-canary.a23ecb682.0","@material/mwc-icon":"0.22.0-canary.1be14d2c.0","@material/mwc-menu":"0.22.0-canary.1be14d2c.0","@material/ripple":"=12.0.0-canary.a23ecb682.0","@material/rtl":"=12.0.0-canary.a23ecb682.0","@material/theme":"=12.0.0-canary.a23ecb682.0","@material/typography":"=12.0.0-canary.a23ecb682.0"},"publishConfig":{"access":"public"},"gitHead":"2fcf49467ff2fdbb2ab4a987563f556e6ff316d6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2fcf49467ff2fdbb2ab4a987563f556e6ff316d6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.1be14d2c.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-3qnZkkRoT1/wwGOBsebDaDCcGjjkmnph1IR2aUJs+UpEhkT/pkhA/EIuSTXswv18VgfV8aLLUuHQF232EnTUlA==","shasum":"226c59a8a4e34f712557e6f9dd9eed4872cf2d7d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.1be14d2c.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnWbeCRA9TVsSAnZWagAAOe8P/0uOTFf8oDENmN8lbJYJ\n7bdUB9XQuOdKccTxJhi/+gj4uLYkbelYsSj0/6OR+QNd3NZhPmGz2Fhn9+dY\nDMdZN2A7IJbH9E1p6zwCZaZdjsX3PHD7Dc9vg7vRSbIsX8N3mkEOk9iq+vCA\n0+P6jn25vAteQ+BmlT2+KRN+8M+lPMqFj1PKxwhVqLjcSjVkdJ4T3gWo5q9p\nca+4nvNzgeuhC/0bhJWXyl651zp1QEdQsrEERe1oxb5N3t2f0YhExpzzdXhU\nq53CrLH7Z2A5VIdCK5W6JnBPMwOyrR3Hmub+vgr+2PUyGLePEyv4tbjxZjYW\n2DHYAiqBfH3mBNd9D3rtkhh2aQyqXPjf5j9n1QOJuqRIot/Xap8gt/MZj4Pp\nYZ9eGR/hbOOthdIisXT1B0sjuPIiyqpO7mzjCQTSiAnqjTorFXuy5nOoxzjg\npKzYRM6xzare6Bs5ezhBOuRuliWriyqu7lVHzhdJTkgkhuwMcq3dy1CgdiRq\nSFEApmWsl4IW5NBGxw6m9jBiyzINhT99GTzj8O+3BTOBpv+eT6jweSpFgDOi\nzdkVzy1mz6jtT6LZ9Djzk6SI16PJX8j8QSuovavfKcmDk/1l964piZ+h7aNT\nC2PgplE7dGf8raSLmUBydzHPaUVAW2wOTEkmBS3xdrJiMi8CCgzri8J8D919\nz6lg\r\n=fLZs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqS+TGRkiadvu7rh3GN2l9a4EifX1cLaghX156HKydZwIgDaAkzb0QcGWJTLuzFdahK8WeuleeZGULz1AsjAeD8TE="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.1be14d2c.0_1620928222019_0.7798135976149845"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.87dbd64f.0":{"name":"@material/mwc-list","version":"0.22.0-canary.87dbd64f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.1a8d06483.0","@material/dom":"=12.0.0-canary.1a8d06483.0","@material/list":"=12.0.0-canary.1a8d06483.0","@material/mwc-base":"0.22.0-canary.87dbd64f.0","@material/mwc-checkbox":"0.22.0-canary.87dbd64f.0","@material/mwc-radio":"0.22.0-canary.87dbd64f.0","@material/mwc-ripple":"0.22.0-canary.87dbd64f.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.1a8d06483.0","@material/feature-targeting":"=12.0.0-canary.1a8d06483.0","@material/mwc-icon":"0.22.0-canary.87dbd64f.0","@material/mwc-menu":"0.22.0-canary.87dbd64f.0","@material/ripple":"=12.0.0-canary.1a8d06483.0","@material/rtl":"=12.0.0-canary.1a8d06483.0","@material/theme":"=12.0.0-canary.1a8d06483.0","@material/typography":"=12.0.0-canary.1a8d06483.0"},"publishConfig":{"access":"public"},"gitHead":"5b6b91a042dd241b949278a5e56cf671221e6a5a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b6b91a042dd241b949278a5e56cf671221e6a5a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.87dbd64f.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-5JJ0pIOAnkG9B7FPt4irDCTdxVdPpfLhxsNhhPnq5oUNIJtuGAyn7fjFoWyM+26uGMHRJ/Y/FFcEKzOKKCgsQw==","shasum":"39d653cd39fe6c59275b55b55ad5084af66f356b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.87dbd64f.0.tgz","fileCount":45,"unpackedSize":250048,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnuSTCRA9TVsSAnZWagAAt9QP/1M/Q/v+pQrgE/6HotAt\n7/L17do4VWOw/cF8Nq8yWhaGkxsg8L7tBBE0AoVvRxY+4McyAfamLkXSqIH3\nnpGzflgGb6NYLkgkV8lblGbwaZNlifssDAPUcOqdGF+TNXkwWZeB/Yo65ywA\nV/Y8OPKJf7ARWa5RYXf8QFxLX3ko0OCdjrhR7VgxFbhwwMzKO5sV8e2f4kmR\n9d5tRFkdNXCKDRboWVL6d2nfrqo1okBRLhnfc7S9DsYgDt05ZIKjlQ6vbEx8\n0lHm5WjzQ8jivLhBwYbvW/G5VVAh8+C7w4gCm1ByJ/WgSyxH6gkz2VXoALN+\nnXY7kqlqFpkMnlXkWusNd8K8qGj4QaaNb0qHBe1KplE6dGTjYL2PoPpPfGa7\nGuyb1ZBs31efHGsPiYsvYXq3zhwRX43P61o5rci2xGapxhXZ1r40p5bygFo0\nrI8zsnSe9ap9nPjGLCVCeQsxlNoYCZQkt/7LehXl3i6/xDK6Ms3HkhRw9n+C\nPYGfGFTh68Ow083apcTfH55FNGnU1fqzazQyZ5Dx73bjKqfZVRRqQMRvdsZS\nDdKDh7xbccffBBpgKAbVc6i/jPd2Hsp1C4lfUpdWoEBwCDN9GL5yPwa/lNxW\nztvWgs5ERTDTukmlHOib3d3w1TF8E+OwLxS14xf4hfzXcbpJl7KyOx0Vlsjh\nobau\r\n=hCCb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFCDEXTi1fFQX9mRQMAEWyFmS60n51N6BMSCo0WiTXoOAiAdGIsiutPszYqkP6ZNfyysMR1X+BoddXt4dmrnjxTzGA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.87dbd64f.0_1621025939111_0.6802110696945409"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.c452e4da.0":{"name":"@material/mwc-list","version":"0.22.0-canary.c452e4da.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.1a8d06483.0","@material/dom":"=12.0.0-canary.1a8d06483.0","@material/list":"=12.0.0-canary.1a8d06483.0","@material/mwc-base":"0.22.0-canary.c452e4da.0","@material/mwc-checkbox":"0.22.0-canary.c452e4da.0","@material/mwc-radio":"0.22.0-canary.c452e4da.0","@material/mwc-ripple":"0.22.0-canary.c452e4da.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.1a8d06483.0","@material/feature-targeting":"=12.0.0-canary.1a8d06483.0","@material/mwc-icon":"0.22.0-canary.c452e4da.0","@material/mwc-menu":"0.22.0-canary.c452e4da.0","@material/ripple":"=12.0.0-canary.1a8d06483.0","@material/rtl":"=12.0.0-canary.1a8d06483.0","@material/theme":"=12.0.0-canary.1a8d06483.0","@material/typography":"=12.0.0-canary.1a8d06483.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"30c4701f29e4afdbe58f6529e947eda655b1b1ea","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/30c4701f29e4afdbe58f6529e947eda655b1b1ea/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.c452e4da.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-8+bsT8/QjqbQloTEN9s/kj7xxHulzKJ/mng+3ZLZK+Jq9j7FiZrjQchDg7DMuCwMv0LuZPHEtFYtEuN5Os9mbA==","shasum":"55c79d238adab5ffd04f744759de596481d61e93","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.c452e4da.0.tgz","fileCount":54,"unpackedSize":277943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgov0TCRA9TVsSAnZWagAAYAQP/RrUmHDrwSXaOpPm/s3f\n9Z2x75mkK4IKC22753b0mpPh1lNvE8pw0yz2YO+A4fndZHs1sYv8mdKdE/lL\nflAgl7vxlZZBpuDV4OivJw+QAcR80mbBoe2xpE9AN0bhloln9L4kLqw2obKs\nLoAUEtWOL3IAYXsGti85Bc6EOEBW05x21/O+znRO4Xjxv9WpRuUWtBLQYkvb\nW3roxB0bp9/YDYmwKukM74CEYc1cJWqHSZXQxKhvnKR128+KUhHkZ95cCIPp\neTtGVNhHq9GyiKzzDDTmfHZSEBb/X2Y6R+c2bcfz+sZ2aoicbeK/dBrZnSeG\nkkU/NL9OX6VzYiQBvrnrC6BwBtorKyStx2RmNORg6J1uah9K/fikIFiP+4aZ\n1LX8iXGHJXVgUN193cNbweE8/jGaq7IuEWIbKr5tIy9JNweGLKX5P3ejovxV\nAbyBAtZUe5IEGV7sefzuahMz5WZybz4X82s653sPRkXE18jLA0KLxezUIV6k\nm1uBzNiHfPvg5yqjhUL5hw5s9goWkGnbv06leGSqYUKNt51itGOXfW5smnvj\nT8mIQOrIjNCUWTVRK+dnPaB5UndSXXW+q1CXKpiq5usPgBfCqwXTTzGB505g\nQkxEnT1HH6Vs9WdjX4vq5TmoxK4joJyRWoDWmxkc4DLpQVQTrW9MAnzWu33C\n7enY\r\n=e1Da\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCjvaKK5mcknkgPsi7O/WNuVuUFSEmC4YmfhqoIax6W7AIgSRogyocuNyfH6WEN21NKIgRli9baJVRpLtLe1HYEZfE="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.c452e4da.0_1621294354681_0.47277096958872455"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.2212691a.0":{"name":"@material/mwc-list","version":"0.22.0-canary.2212691a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.1a8d06483.0","@material/dom":"=12.0.0-canary.1a8d06483.0","@material/list":"=12.0.0-canary.1a8d06483.0","@material/mwc-base":"0.22.0-canary.2212691a.0","@material/mwc-checkbox":"0.22.0-canary.2212691a.0","@material/mwc-radio":"0.22.0-canary.2212691a.0","@material/mwc-ripple":"0.22.0-canary.2212691a.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.1a8d06483.0","@material/feature-targeting":"=12.0.0-canary.1a8d06483.0","@material/mwc-icon":"0.22.0-canary.2212691a.0","@material/mwc-menu":"0.22.0-canary.2212691a.0","@material/ripple":"=12.0.0-canary.1a8d06483.0","@material/rtl":"=12.0.0-canary.1a8d06483.0","@material/theme":"=12.0.0-canary.1a8d06483.0","@material/typography":"=12.0.0-canary.1a8d06483.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"8fba3dfbfa73868ebfc76e8070cb5d33921df0f8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8fba3dfbfa73868ebfc76e8070cb5d33921df0f8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.2212691a.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-z9mcN/OJ4F7dUG1d+kBFy7wUsuc4NRDwYAcMQ8qiraVLS4GJya5M4756zcI3ZR5XSuxhti3eKsfa1LO2/Zq+gA==","shasum":"392f38b4fab0c2a3cfb82e123473701115eed36a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.2212691a.0.tgz","fileCount":54,"unpackedSize":261566,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgowHmCRA9TVsSAnZWagAAh8kP/1oUgvvt8vrFnJC/O4VV\n6cWDHoNFK2ggrgywFoL33DZSHtAPzw3wHGyBaicNA5q985ZOkFsRLhXB0SIK\nfjg80hAeQI7MTqblBC5J3kZelFuh2RbdFLkVdpdBv/Enc9jHZbEq9FivmiTa\nNjBNlVEDaXwp6boAOuoVeXjnQX2b8v6ilhoZa4LamI+fnCQrbMOeo6cayu9s\nkWtMDcZZThvJGfktmeCjrjf0dEZvWobhxVd2OYX2XYY32+31oWo0hnj1V7vU\nT67Udo475jS4O9bwsRa7fPv0ZhmEM0Y2c5Eth5uainrry0cdqtd4RRgh0WKX\n2oqPAUGJHpjvSh7z0XN3HuMXaIN5V0nfpCBCDKfaxHwcL10YQa9JCrOBF2gQ\n1WRwAFt65w+1VHFSyvAvl+u2GcV6U3aIlm+mLotdzhpUUT5XhagvCkBrEeKp\n1v/IWVA/q6W+NrIOdd/H9HdjUpyLOVVAc79smjTLKuHiRcZEdGEfFkIr+R00\noCfvySUNv3tavusTTsG6NopK+L+2ZUsv22Hfqj0FSBZu5C/0/Dr0cCtu5oOT\n5llwkl1iksC2ZaKIrQMr63ceABj5HkTENlRT1vloXyEk4OrHf6fshyMpweWq\n8WKLvKQ9EJPrN5kz8WFPH62KRX9X+XKyoGz0MiDfWROaNjhT06Jzbc003Bol\nnUfU\r\n=I7Am\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBG5eiFxZf/8HaiCPC+zxcryvsYKM7LT1WFb877w2THJAiEA1OXNTEmZO7aMtuK6ADYJse6SigDOsOlbArolQwfoL4o="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.2212691a.0_1621295590069_0.8579870202583681"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.f748ff2f.0":{"name":"@material/mwc-list","version":"0.22.0-canary.f748ff2f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.1a8d06483.0","@material/dom":"=12.0.0-canary.1a8d06483.0","@material/list":"=12.0.0-canary.1a8d06483.0","@material/mwc-base":"0.22.0-canary.f748ff2f.0","@material/mwc-checkbox":"0.22.0-canary.f748ff2f.0","@material/mwc-radio":"0.22.0-canary.f748ff2f.0","@material/mwc-ripple":"0.22.0-canary.f748ff2f.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.1a8d06483.0","@material/feature-targeting":"=12.0.0-canary.1a8d06483.0","@material/mwc-icon":"0.22.0-canary.f748ff2f.0","@material/mwc-menu":"0.22.0-canary.f748ff2f.0","@material/ripple":"=12.0.0-canary.1a8d06483.0","@material/rtl":"=12.0.0-canary.1a8d06483.0","@material/theme":"=12.0.0-canary.1a8d06483.0","@material/typography":"=12.0.0-canary.1a8d06483.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"a83c1c5ee60e398896831041769b5c22e19b4621","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a83c1c5ee60e398896831041769b5c22e19b4621/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.f748ff2f.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-suZFpgAmTpAAd/oyVgZEBKEShTgVMXywAef5ChX8N1hqhyqheLFkAz+Gz+8UJtMPy0QIKK883PqyoednWTCwHQ==","shasum":"777de2533b71bc7fb8a488fca62fd5a786a0adcb","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.f748ff2f.0.tgz","fileCount":54,"unpackedSize":261586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgowjnCRA9TVsSAnZWagAA/PwP/26Sw+oFidLU4CYHFAtz\neh5BKmcxBMU+RtQ2QezKBTvQrYWeu1RL8vDWNJJilKfnq6nmH7SXJsuaZjtO\nF6WBVrh2lYUesz3aQXD35zVoKVnStO6/tRRDM7h4hJmHkXXJzrii48tKrnmO\na/s0fiIOxCObN2MDuGJrFChRUPCsUTiu7EyWThniTWTmzrKz8Xvue1P3tKoc\n+WudtSWUR1V82htKc8HQCmwt3g/rp9+4XDChz88rXZx3yDyWlZil+0nURLbA\nNMeIwmz2sIwQImZV+qWMgEwfB3Yc1Vn1pTiQqyrpiigzlvVq0mJpPrwTjShy\n/zDDGw2+3MTM84FTRXHvAbiFlVpf9Y3ByCo6co0xjpTYDqjHGwnzEs0zkZNk\nmWhoL78Mrjq+QGrEP39tum2+AHBVDitwFzbYgOcI0ZrAtO5qwjBDG4p7hgxO\n6sfOy3dCF+k4YMD6Kf3Dp089SOnKJTifBmFC916fR2mEtxsOg5x6smtGrroh\n4Fh6emvkQrPdm20jNxFKGBMscC9ZjC1cSpLP5jYqwEa1Aae1vigNdGwiDKNZ\nIrHJFnOQ4/txXXQ3Ssg/JnsZ40NeUbPocff9e7dxvo9mDNQfStDMCcIjX+IH\n0l0KjGXVOaE/l6Xfs9Obr0KbVk2eEVOX/bfn0NfrsKd2ppCkc7Y31kWPE3Zq\n1n3x\r\n=ehXV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAY8z6/5e6g2dOrC6j21U/Q79OsaVH2VT3QH3s1E9/ZjAiAMHtzzQ9TaGh+Sndbga6iU0GvMe+aOXyRv3OkqxcIGow=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.f748ff2f.0_1621297383433_0.4457925501018962"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.cc04657a.0":{"name":"@material/mwc-list","version":"0.22.0-canary.cc04657a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.1a8d06483.0","@material/dom":"=12.0.0-canary.1a8d06483.0","@material/list":"=12.0.0-canary.1a8d06483.0","@material/mwc-base":"0.22.0-canary.cc04657a.0","@material/mwc-checkbox":"0.22.0-canary.cc04657a.0","@material/mwc-radio":"0.22.0-canary.cc04657a.0","@material/mwc-ripple":"0.22.0-canary.cc04657a.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.1a8d06483.0","@material/feature-targeting":"=12.0.0-canary.1a8d06483.0","@material/mwc-icon":"0.22.0-canary.cc04657a.0","@material/mwc-menu":"0.22.0-canary.cc04657a.0","@material/ripple":"=12.0.0-canary.1a8d06483.0","@material/rtl":"=12.0.0-canary.1a8d06483.0","@material/theme":"=12.0.0-canary.1a8d06483.0","@material/typography":"=12.0.0-canary.1a8d06483.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b1fa7339fbd44ff5149f7f38e481e6b0b6fd048a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.cc04657a.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-yA0b38mTEh75+W3LxeSJe97/Yu9bZAXX9783v8lhbwlAbp/IZPcLr0FkSfUt4BM4TIuEU9Sb6E8L8YpCqM6NSA==","shasum":"490ac8b1aebf57f937122bd9e55bc406c4ef793f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.cc04657a.0.tgz","fileCount":45,"unpackedSize":230755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgoxaZCRA9TVsSAnZWagAAa3IP/199sNruGEGHqCOrtilF\nJFr7auVTDl0oqHdVTLtzuqffKckgbyCzof8E7rdrJ/pxDx4Z0YbDc0PB+Xh/\nIIw7PD71s1aJwVlfpTSrkUhApQ53g7aCg3ioNy2c59K8kNxf/P48kovlj/un\npcpFiOst6lc4m0AzbfNlekTuBfjwIFjWQUFz9mHWQbbndbtnlkT73L2wW20q\n+Dc0gvGI+vYlBGPCARpZ6c8GV7NKq5k7NAKEqGDEvmq3nFZoJTAQ1vNPg1HH\nV8f9eesVzLiOVydvw3+yLQWEvSHYt8XlwSIVO/tRjxR0RL39an+lriRy0rHU\n7zgm2e1pRiJXmbaRSRIWbR5jg3kSNvEhL32SxGy+KYEGS5Azck2r2CISgX5n\nT17m8GSpF20z1ee5sDJL0FrtZerodWWih3x5uFvfTya3oSyfwi9GE5fFH/LS\nSJ4U0kjyklWZQWyDSu2iYNlXVC8fm4F3xsDkpGJHB0Jb8AnDYcbzCHweOsGR\nBwNcweIV6fGQSDdzggj9SW+W7ItCvk0VRDbRr5nntVZ0ZUweimvhMcYH75y7\nP8iIfSa6woVxQSN12KqDXhTTzR5reB/Y6RLgj56/ydTfTQBT+6g1wN+3D1Pc\nYleb2IDHV/At9AdnHXW5XWrctXv4bECJpqxO4upiPHKrmDVRPfBsr9n44cat\njDW8\r\n=Vgas\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGYVYngdCt1lAr0uL7iARoeGYovEq7EJipRwosqs4mddAiAUOBvatafleq18oPjXsGaVoaBxgewOVQToHPVr2pojWA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.cc04657a.0_1621300888717_0.24122838241109856"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.3a3114fa.0":{"name":"@material/mwc-list","version":"0.22.0-canary.3a3114fa.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4bb5eea2b.0","@material/dom":"=12.0.0-canary.4bb5eea2b.0","@material/list":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-base":"0.22.0-canary.3a3114fa.0","@material/mwc-checkbox":"0.22.0-canary.3a3114fa.0","@material/mwc-radio":"0.22.0-canary.3a3114fa.0","@material/mwc-ripple":"0.22.0-canary.3a3114fa.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4bb5eea2b.0","@material/feature-targeting":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-icon":"0.22.0-canary.3a3114fa.0","@material/mwc-menu":"0.22.0-canary.3a3114fa.0","@material/ripple":"=12.0.0-canary.4bb5eea2b.0","@material/rtl":"=12.0.0-canary.4bb5eea2b.0","@material/theme":"=12.0.0-canary.4bb5eea2b.0","@material/typography":"=12.0.0-canary.4bb5eea2b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"217bbc3c5105a7f3ed67d47f0169dc3b8269adc7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/217bbc3c5105a7f3ed67d47f0169dc3b8269adc7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.3a3114fa.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-xXuRh/1WnwkteaFwAF1jHuoy/WwBRU9wrK7trGgnIXIfqHas7mdTnoLhsclZ/DiMSCnQ2zwDXkw30nqFqgdGgw==","shasum":"74bd977620ed9f2fcbabe34f5532c622c3fba6a8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.3a3114fa.0.tgz","fileCount":45,"unpackedSize":230755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpaH+CRA9TVsSAnZWagAAwP4P/iYJqQT9qns5YTZofClQ\n1ERTVX4BxYfSa/L/A0w7YklfEQW22tJpPAcO2baaUtvP5wgN2AuFgFG3fMJG\nknlPKLEdoj+eygYGsHqeMQgb1nAmubIcbIkcQ1fYAicd4FKz6zzdgQuMNh8e\n/2G/sHoW4SdJZMqTzwDKabn4VG9pnMMui13USEQdXCLJZK+jLA3EcCAC8JJK\nvEWy4cAEKmB/Am/EZKInHr5IBf/UfX7FESMuTE7UkAPcpfjfyFbyqtv1uLi5\nsPqkHJLHhdu8K+6fuWQMo1VNjFHxNlME8RBJlDe/91/BaKpS+wzdFt/c8EJf\nwLCjnkuXCWb9XfcZNGBF6OvmaUoL4m+hXu9zx5ML+44ACchabRyJHMfyiS+v\nT/mQltHeBjjQp2yanSRdrDv+GtsLoj44RJqzxcBMqfNyULm3Ky0e0bY5HuWB\nYmYfYeZOlO7oxPo8ZxO+QOAvX3HeB5XDpPu1HtV6sPsvIRa2JQCD2wwsBeH8\nE0/+L8Wu2w5SVMCvW9ICs63VmvfgnBNSS2Kookk1FwzjVeUx8s2oTDZt3/Q2\nQMSdwAy8orswAr6B1VTpbLfyDJOt9VM8pr7Nzzte+xaufJ3JDBoBfI5DyslH\nZcuWfd3gu2b8INloVvGUrRwuYawIpL93Cqz0JoMnKXnVT0Om2aadULnEqw6d\nnfyx\r\n=oVSG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClMRRmwp+b9Vn5oq+vXJ9nqXsGm1rCfbm6oDJ3zMeb3AIhAKB8DtR2a+iFgvSLu3AuvQtEM97Zm3vbtJRcWuWmm6QG"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.3a3114fa.0_1621467645984_0.7084958681993665"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.b46bdf83.0":{"name":"@material/mwc-list","version":"0.22.0-canary.b46bdf83.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4bb5eea2b.0","@material/dom":"=12.0.0-canary.4bb5eea2b.0","@material/list":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-base":"0.22.0-canary.b46bdf83.0","@material/mwc-checkbox":"0.22.0-canary.b46bdf83.0","@material/mwc-radio":"0.22.0-canary.b46bdf83.0","@material/mwc-ripple":"0.22.0-canary.b46bdf83.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4bb5eea2b.0","@material/feature-targeting":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-icon":"0.22.0-canary.b46bdf83.0","@material/mwc-menu":"0.22.0-canary.b46bdf83.0","@material/ripple":"=12.0.0-canary.4bb5eea2b.0","@material/rtl":"=12.0.0-canary.4bb5eea2b.0","@material/theme":"=12.0.0-canary.4bb5eea2b.0","@material/typography":"=12.0.0-canary.4bb5eea2b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"9095fd5cb7570c346d2093f1eb444f3035718920","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9095fd5cb7570c346d2093f1eb444f3035718920/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.b46bdf83.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-ZADh2+ftHrzc3cJWX3alaxBdNaofuVj9s7fumVLGidWWsZVVnoBwZedCgH0qtVRpnNhdy/V+qK6zRW6DNweL6Q==","shasum":"145cc994a1566cab37afb5e84ee777b78c86aebc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.b46bdf83.0.tgz","fileCount":45,"unpackedSize":230755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgpcClCRA9TVsSAnZWagAAa5AP/j7WK+mfWiWbRwypuPYN\nDP93h08dPEjPfK0cG2KI1roq+MqQbbJEfugPTGDNSvkybE7U183gSjeDDXVl\ncAUxEKLPKGjYwRPw20mZWXNvJmyx8YeMSNslDkuFBprWmtSi/rS4MHvhkuo9\nD9awoK7WYdDHoEXbZWqSlBATeud1PK8itHrWawDfz1Mjz++JtWzeRR2skpC7\nyKfn4hVNNHVae/BPSjAIyGV4j030kBDwBfeefMLyuhv1SvrjdBrOXZklObOV\nP5t6MGq5Avncdc63nAXaX02AKPjZgjKSbC3gvwCC4cqD0KOGeFU3noIa8HZc\n80nactjNpAj46+yyL6WsUNsNfauegB3cnbqKKZ7Q4BGHjZ9Er/4SdS3NeEjk\nmreQKwL5zS9CO5KFpAmHI1JHw8J0+dWsRhMBlH0vYi2vpXw4OmRZAcn0RTMb\nb1KnQIgWB669C25xnDrRbY1a8DdXVR2sDudMSpF2Wp7b8euFCIjUQxaF+gMn\nlHsWHbiF7SMO16uxlJwZ3Jprbt+085ds5+Ra2kPo87M+6Fp/LYjsdjjnqLao\nEAxArbNA024uE8JOLEUJA6mZuFFFZEsy4yvZyw7lklaf9xy/fVeahf31smV7\nndh4oip3flRH8LO50V6l/MGm/v1wLdY1ps5CZnFLL19aCgvQWPyfxLeyjDnF\n+gFZ\r\n=F8am\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcMlo+/49t4qHqL5/fOU1yXpgLdi46BrPmRbEjFekIggIhAIlx1jVkLJzJKsJI+6tTrlold/Y3KUIq37MdA1y+5lg6"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.b46bdf83.0_1621475492452_0.8247960647573815"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.b401a081.0":{"name":"@material/mwc-list","version":"0.22.0-canary.b401a081.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4bb5eea2b.0","@material/dom":"=12.0.0-canary.4bb5eea2b.0","@material/list":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-base":"0.22.0-canary.b401a081.0","@material/mwc-checkbox":"0.22.0-canary.b401a081.0","@material/mwc-radio":"0.22.0-canary.b401a081.0","@material/mwc-ripple":"0.22.0-canary.b401a081.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4bb5eea2b.0","@material/feature-targeting":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-icon":"0.22.0-canary.b401a081.0","@material/mwc-menu":"0.22.0-canary.b401a081.0","@material/ripple":"=12.0.0-canary.4bb5eea2b.0","@material/rtl":"=12.0.0-canary.4bb5eea2b.0","@material/theme":"=12.0.0-canary.4bb5eea2b.0","@material/typography":"=12.0.0-canary.4bb5eea2b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"3f253eb320a1f9b9e236e2c6c0503900e63e2c6b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f253eb320a1f9b9e236e2c6c0503900e63e2c6b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.b401a081.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-EMnwTWTdd4fObLkci5Cs4d7tmv5MF2CF1rI9oPSXu7e9gadjAaMI/jtois3Ex5yDAJQiNR23wuklw0fqGw0hpg==","shasum":"4b853e40f8f9500cbeae8791a0b3072e14888e94","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.b401a081.0.tgz","fileCount":45,"unpackedSize":230755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqED2CRA9TVsSAnZWagAAaJMP/Ryokb3fX/V6Y0qmDPxQ\nYmmRd4pViWHWfsKk/XrSDIujy3OBj9WR3bwMwuY12D+ZUJTraX51zmgWs97G\nptTuRuN1qvpywgwz67E4nwNje0sa9p9miYFTleQPSqjmrxyNTrcpL3vPKwAN\nCSMMGqWDVODVhPGDWp2mEauBsAYqLtZGcn8U30MGlOi+l5kRJNc46dsBvTfG\nnh1ojAU3CEATAirujn1qst4Dj8eeU6eME59XPyPSYCOLEnJTen6Bb2sPInu7\n7bld+6Qnf9YyjXW9UXf9+7gCf6U+6qtwVCnXI3MTNzzMCUKYNNBqI1AQBiWP\nYF7k8f9pgzVzr0afp7VHTNw8DbCHRIwR19AA9H6z6TxtzZChNMBJIWpoKkSU\n5+M6gCoXK0+ep3SP1/BLj32khEo1JXbI7ufuj9Id9WIoXH8P3sXMmF80aXQU\nQUO1aBaWKoZChR2ysBPQjM6w3+Utfqn2zIcnS+XuJgGAKfdGfbR3xUMfBnYI\nfK0z1TP/hmzCsvZb0DnJToz7ftZteYGHS9b7MOqzz4Qd6t+piUo5O/LSPCmo\ngERSvCfUxqiNmK8cS5rAYEZAvyH2ldCp7PABs8dG8i8ZuLfGyLGlp5MQwlW+\nk/D4QlyaWuuRJQMIJ0X7Nj+VDDR1WXUvRm/Gd8i7ey1OYD3ifIdulPIB2PtY\nXIFx\r\n=qyzd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCcEyfO0paKCHJ+J3bR0+e0/SC81Q+oOBFDNOO2JG/LvQIhAPY5HZWKX/nryR0THLCj7c2k9KU0HnDy/LLZ4aVpRaSc"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.b401a081.0_1621639414432_0.2934449984974259"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.012c8dc0.0":{"name":"@material/mwc-list","version":"0.22.0-canary.012c8dc0.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4bb5eea2b.0","@material/dom":"=12.0.0-canary.4bb5eea2b.0","@material/list":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-base":"0.22.0-canary.012c8dc0.0","@material/mwc-checkbox":"0.22.0-canary.012c8dc0.0","@material/mwc-radio":"0.22.0-canary.012c8dc0.0","@material/mwc-ripple":"0.22.0-canary.012c8dc0.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4bb5eea2b.0","@material/feature-targeting":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-icon":"0.22.0-canary.012c8dc0.0","@material/mwc-menu":"0.22.0-canary.012c8dc0.0","@material/ripple":"=12.0.0-canary.4bb5eea2b.0","@material/rtl":"=12.0.0-canary.4bb5eea2b.0","@material/theme":"=12.0.0-canary.4bb5eea2b.0","@material/typography":"=12.0.0-canary.4bb5eea2b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"7a0952c38da1624fb6d0653e07cc5ebf284120f3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7a0952c38da1624fb6d0653e07cc5ebf284120f3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.012c8dc0.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-UJkdSrt0GWVAHGCBJdFTK/WA0ufuIthAY6jT0iAk4NX4ElpuPyOLFNPw31wy8z3IHRDQgRXF/FrPKy9UqyyEXQ==","shasum":"edc02bcc770f0120e27ca4bc01b00c8f8755beef","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.012c8dc0.0.tgz","fileCount":45,"unpackedSize":230755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgqE16CRA9TVsSAnZWagAAnSIP/1SdQRn08nJDs77AgLGs\nU3WpMuUtd9Q+1zIkFb5rt8Rv6POcejRZHMtv7kRUvGXCXKR5mkFTA49Gbfxh\nz/j81WBvZbHxJbWVdPk9y73MZaylUd2oNoWDlhncAPM4iKppNEll+Sgku068\ns6eCWUUh7oIqYcuEAtBUfce73Y3pQnq8lp0qeFRaFvpC69BauRlR2dZYQq1B\nEkQVM4z0ss83d23JlRTqH2qT7ZsuVvAZYE1e29iZkmSuc66uALRwIBpSPX86\n6QjOli/IPmtpMmyhw1yTMcLFI2bVb2r8QaIeczH7sA9Krh9H/VgYf8ezZB+N\n6wjtXEeREa1/zRKVKlGHg7Ughi0GH8z084n7TPh0UvudosQAv6z1c1xgtI+7\n10QrCWCoZdvm8Nc7Py80wI/6g2iOBwZ7bpGw70aUbBNhh42VEa+m5dA5fvpw\naS+RKKsF7CqMxdMgu7YsVBU+uOn72UdGMkhYX3bUYNZJmPKlMbPUQUIaWsNv\nVAfnKa6sleWI7+1Gemp26m13aq2fxEz651a10dEeQaxcnqnD5PTkUQAxDSGh\nX8W9G8GccnMUKcwV6/ZqfCLvBLiBDeGhS9mNq/DUXVYdPLjKYDhDVD/LBAVh\nHsYSPlWMG+VKYyHaPYdXJge/D+XaXzDc4GCazzQ6ptny5e67rUsR3dZbrQMh\nLXO3\r\n=X1Qr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICHVJY/am++odGlXWhptyTWriXTIZCXWN88inNgMfDXUAiEA1cjioY94DXXkhDuvRyuW/3fie5M5FNf9PDiuGz+0vIU="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.012c8dc0.0_1621642618277_0.8913541758190506"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.e01a1731.0":{"name":"@material/mwc-list","version":"0.22.0-canary.e01a1731.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4bb5eea2b.0","@material/dom":"=12.0.0-canary.4bb5eea2b.0","@material/list":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-base":"0.22.0-canary.e01a1731.0","@material/mwc-checkbox":"0.22.0-canary.e01a1731.0","@material/mwc-radio":"0.22.0-canary.e01a1731.0","@material/mwc-ripple":"0.22.0-canary.e01a1731.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4bb5eea2b.0","@material/feature-targeting":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-icon":"0.22.0-canary.e01a1731.0","@material/mwc-menu":"0.22.0-canary.e01a1731.0","@material/ripple":"=12.0.0-canary.4bb5eea2b.0","@material/rtl":"=12.0.0-canary.4bb5eea2b.0","@material/theme":"=12.0.0-canary.4bb5eea2b.0","@material/typography":"=12.0.0-canary.4bb5eea2b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"8afd20b0913094a1c3c1b084d0bec7d38724fa00","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8afd20b0913094a1c3c1b084d0bec7d38724fa00/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.e01a1731.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-YJwYRhf5gQr23fvS/R8f2LqxBgzo2/Gewphojoh68Zi/dzGazDPvC0Uml/QQmg51fvNHypTK9X3eukYnqMu4VQ==","shasum":"1f00d562a855cc08e1c68a957bfda3dd6d9470aa","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.e01a1731.0.tgz","fileCount":45,"unpackedSize":230755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgq85KCRA9TVsSAnZWagAATrwP/2i2ZejxItI819iAMRlb\n65wk3cSfRXPqhgI6OJrxrSiaE6A+bIwYR+gF9kuDHtRSvnQNNTvz53Wsg6W0\nT5oSSDbWZmdXUbLKovd6C+IWjCkaleHn61NYZKrDB1Yhrpef7t2XpB0fWlXd\nBHpZ0LY12zq8nWU2CPkA6SuW4CLt6IxIsh7f9paNgkUI5afpTuyEOXSnoFd3\njtqAPAt+XThI55AaYje6VjjCTvVv248BVU8X9n6EzDFnujHQDMV28rSmgrEc\noWfomaMYhpy3QccswmxP0sOfLHbHCy49k3sTif4FokJ/OGjReqTBPiDvBp0n\n516tiyjFanF7atcDk8g8oOx70+mLS8hSC/zDS06trVPmlyltLYRXINZ5ebxC\nUepX44tXt48QT2gEgMjwPfNyedDS+SpAsHuS3PLOWEghf+OJ5TlBvlhVs2PO\nYWdyc1IBQ0rljE9SgVsXoZwewSsXscLLAuRKpVv+lqmVFa2UgBEaTY7YCgta\n4GdbuXJ5/imtgshg59NuvFkrbg6T5bQel/gIF1kLPta8dt2VieQ+yaFHx9YZ\nWBxbzYUHy9Ib6+azcKn76FGaBVOkEV/7nv1X5TInH2zFL9ehUbXcw5cmcOCU\n6r199tdXtIbY6EihBUCAelu0dWr0CIwdoNczQ/hwkX/jPIpow/32rf7X0tU8\nuf+L\r\n=WfYp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGibh/zbdfjbC9Fg9dWpOvBEf5r9pxacEtyaj5vTrz2qAiEAi4Kt5tH2vm3LB42Rq1Qz+TwVfC4LY3f/3MTD7/wbzsc="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.e01a1731.0_1621872202174_0.019059427651813676"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.59174b9f.0":{"name":"@material/mwc-list","version":"0.22.0-canary.59174b9f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4bb5eea2b.0","@material/dom":"=12.0.0-canary.4bb5eea2b.0","@material/list":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-base":"0.22.0-canary.59174b9f.0","@material/mwc-checkbox":"0.22.0-canary.59174b9f.0","@material/mwc-radio":"0.22.0-canary.59174b9f.0","@material/mwc-ripple":"0.22.0-canary.59174b9f.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4bb5eea2b.0","@material/feature-targeting":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-icon":"0.22.0-canary.59174b9f.0","@material/mwc-menu":"0.22.0-canary.59174b9f.0","@material/ripple":"=12.0.0-canary.4bb5eea2b.0","@material/rtl":"=12.0.0-canary.4bb5eea2b.0","@material/theme":"=12.0.0-canary.4bb5eea2b.0","@material/typography":"=12.0.0-canary.4bb5eea2b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7fb9171e05c85b1bf933cbbf66a44ff2e05e9e25/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.59174b9f.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-v/qDZkrTTXiquzzOHPA3XS8Fh/54r+wtT8TvDklL9Rn2p3Al4TCEwq/eFfPa5m6wI/tV1tdCaxeJ4B4txxyTgA==","shasum":"57e9d9891239e6ae3eb4f4da445ab1c66eef595d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.59174b9f.0.tgz","fileCount":45,"unpackedSize":230755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrTvKCRA9TVsSAnZWagAAIv4P/Rh3kLkc6WYVWpvlAF7C\nfCZVQ5GFLErtBh5oN4OHmOymPqvOwitYBecf2hvWmLXTBoFcLO7ogfQCRhbf\njIxhqgLDNT+NubUd8Yqx7rkFlbtcDVbOFvYx3D+5yQRdQEEwyXgfJzb4OK/u\niys9k010ZEzYIP8pXpkVKJiNhGYwb6qhnkqcm3XNAnute9ElQ/ca8CCPvBTG\nkeKwAlzMLEkeJwXkJ2YZ0MKtn6KTgeDlYoxaEJb6c0bHCDMLIT9a4BnfM6BK\nCyhZYbMs0WRA4otSb9p0sscM+1/HEOhR45/hqkrxCIM7aLaUNvz1xNPcZmfv\n3D5Y7p9EDxkehlfuw+l4XF0TTIqOqOy16DsigZ8l4p9eApbwRssVrDyARmFn\nQDA77V44WHQ7nq5eeT0TvSlHPY9zkpvL8d0GgUvdTLfvaml19p4LJMphWBxW\nFbA5StMyzOgQibMdvwEDSfjEycXqg0bbF6LzYi6NmuXO0VCvmVbebKx/b8qY\nhw28Hsj+8rGU7s9YtS3v/F8h1Pst+tKqwKjDmcvX/8zt8UR+PIAESIg+EvbZ\noNYLyOjArPu55pGfR+rYRZPXoAvXyTQfJTq63F7EYdUoKHFm6mXp8HAMWUKb\n06H9QFBpDQMiwIGUmdN6cXSvcghFXBZ3gTWXukwa+AupGvu2wfKVP1DKATO1\nt85o\r\n=zOky\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCk5pmlt7PurXAT3ButWHwNDUv5enO5Yao/GpFsv7WpsgIhAMvRPTIdMLdVVxS1mBWL1YichJLATVKH6XsMIbLtpVFS"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.59174b9f.0_1621965770425_0.623512881247859"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.c96cb2e0.0":{"name":"@material/mwc-list","version":"0.22.0-canary.c96cb2e0.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4bb5eea2b.0","@material/dom":"=12.0.0-canary.4bb5eea2b.0","@material/list":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-base":"0.22.0-canary.c96cb2e0.0","@material/mwc-checkbox":"0.22.0-canary.c96cb2e0.0","@material/mwc-radio":"0.22.0-canary.c96cb2e0.0","@material/mwc-ripple":"0.22.0-canary.c96cb2e0.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4bb5eea2b.0","@material/feature-targeting":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-icon":"0.22.0-canary.c96cb2e0.0","@material/mwc-menu":"0.22.0-canary.c96cb2e0.0","@material/ripple":"=12.0.0-canary.4bb5eea2b.0","@material/rtl":"=12.0.0-canary.4bb5eea2b.0","@material/theme":"=12.0.0-canary.4bb5eea2b.0","@material/typography":"=12.0.0-canary.4bb5eea2b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"516910ae9bfae62513b95080369ed2be100b1c27","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/516910ae9bfae62513b95080369ed2be100b1c27/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.c96cb2e0.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-JnX7DkZ57jk7aBnd0ft4nG1TMOuIy0K/58aO/gWCpLwrwDucT9x3SJesQ6Skv9PaVgSLHEDJFm9y+Kk9TPQxsg==","shasum":"e4d010279e712a145263948292fb903fb46f8ffb","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.c96cb2e0.0.tgz","fileCount":45,"unpackedSize":230755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrUw1CRA9TVsSAnZWagAAut4P/0hgucgQpSZBCWCn0gfG\nasgfhXary8O4Uhh4KOnQ+9udjba66YvG2qf8+quyted1OP5IAGpt6kvej4BA\nNc9/U1XSxFNfbXhif6T4y68w7IqMkQ3UEL1cwj018A74o9YpavOJkUL9OGOh\nNDaRMxJksTYy7HDFlFKreCVX5R/A+IAZiyo1QRae9gJu3/c3C/E4K5uy5tTX\nbsCj5jeso+p1ie6trKUt4kTzu3KbipREkJNwjaBzePxvQXJ9KCWZPNl++Am5\neew+oUmkYSmtwelNkuj+xsa7Oyv33hXfeSQ4a2/nBhuOSdm+hlfTNaG+5GrI\nS4GUovGezZlDGoS1DLteFy++SDWhF/FOm2pxmKzwQ6MYU1vKYX2TPZmEKEQ5\nyCsvHaSWvKx/plZ2OxGrdy2WDs5XhRXM/T1ZolSp2lsDDsgT8SVAl/LuX0N1\nW+N5kwoiMt8IHTCCq66o7L7M4tlv3le10IdDgCjwndIUkXFj5paIWLqV2a4j\nKb2pGDMX6y8WB3PpeP66x5i2RsWPQDQJY8uxzpZ2ZxqqFjbShnX5motwXA4+\nf+/pLKaAuKKpPy9hRSEyNE14R4zAVJOHRilBZgvTta2+s4pPqGX669ckMJ8G\nTDDv5en7L7pZwUIjiT2eJG7kR7JVW2K0dcvJcDiObv/GJC+ODC42/zA890m+\nUnIG\r\n=Gn64\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCAWnFpvhioZFM2veZ/sn1nYlujxIfrQaAc29P8WY+wuAIgBe94Ula6LsLvtaR8B+z/atRo5WzT740lHnn3rw474T8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.c96cb2e0.0_1621969973260_0.19095482452278012"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.b9b0e330.0":{"name":"@material/mwc-list","version":"0.22.0-canary.b9b0e330.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4bb5eea2b.0","@material/dom":"=12.0.0-canary.4bb5eea2b.0","@material/list":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-base":"0.22.0-canary.b9b0e330.0","@material/mwc-checkbox":"0.22.0-canary.b9b0e330.0","@material/mwc-radio":"0.22.0-canary.b9b0e330.0","@material/mwc-ripple":"0.22.0-canary.b9b0e330.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4bb5eea2b.0","@material/feature-targeting":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-icon":"0.22.0-canary.b9b0e330.0","@material/mwc-menu":"0.22.0-canary.b9b0e330.0","@material/ripple":"=12.0.0-canary.4bb5eea2b.0","@material/rtl":"=12.0.0-canary.4bb5eea2b.0","@material/theme":"=12.0.0-canary.4bb5eea2b.0","@material/typography":"=12.0.0-canary.4bb5eea2b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"18c2325baf4aba3a786f872ae497d8ee283800e0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/18c2325baf4aba3a786f872ae497d8ee283800e0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.b9b0e330.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-l5W6RTkWgQACRO7ho4ylBjcNPzXI0fHJFGTw4tyzefmM6xNiP0X8nzCScoObi/7K0qSMY0jRM+NSNv63jMWF8g==","shasum":"46b77163961070e65351f96e53ef41cb398baf52","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.b9b0e330.0.tgz","fileCount":45,"unpackedSize":230755,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrWWKCRA9TVsSAnZWagAAQ34P/iM0+4oOku+QLi5nH6Es\nqH/dbX60wX/bkmzelBEho3damy2anrY3HXZaY/M0XJVjlSukckUqWPkmPedX\nrv45k6lYMO0iUxq7jRya0QseaFJ+y79aHWLhIGgnVhi90ttttugEcAaZEOlB\nwWSob5a/F8uZCifru0d0fBcm4ArJUw/AuubOV6RQGzT7uAB5rWbaPUOD+WII\nhtWp88MrHxN48VFikvUnwwj/WdVhs0VYubF7MBpp92Jwl+dxSxTCQLLN3U/d\nJK6+RN05fHO+0AltQTQ7NPaC0a9bLG68f8NUUYNtvL1M4tZa1xz6+hIM9qB5\nWpsaLk4GbdGDjgDLRmEOMG4BfrQ/GX4JE+5bknxOnI30Ygnhnqq+aEYBr7vN\nnP24tmqF9NklKhBNmwVWQwyaQExuFiDev4e3PPqWnlxfWZtNr80u7muj3oGy\nUANyFoogman4huFAjEGUHN4A+sM7jWvppquYfZpP5iwIzQunZA2d9dOYbYGi\n+TMxsaAdDnf/geZXvXlCo0IyzmcDmkLTHqapJnMkKL00TO4mr8Knu/zmFO30\nQdSXd4oI8T54WQXpLMEPt4C0qVPmLBY8VjROyca3G21MzPmyCpploef/oC3A\nfAJiVP3dR3bilHTjh8KWmBRlbdPM2GJHr9XRqvL8TDGgQbtVbrrUAZL25RAJ\nTgTE\r\n=YDg6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICA7Tdfqz2O8lX5h5AdjBWoJCB4hf+lDX0hke3PmjREFAiAY7G3alYK3YusnG5Jdr+aPqWsm/srDUjEEnLsQoTsVoQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.b9b0e330.0_1621976458232_0.8412678764534807"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.ea2a8063.0":{"name":"@material/mwc-list","version":"0.22.0-canary.ea2a8063.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4bb5eea2b.0","@material/dom":"=12.0.0-canary.4bb5eea2b.0","@material/list":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-base":"0.22.0-canary.ea2a8063.0","@material/mwc-checkbox":"0.22.0-canary.ea2a8063.0","@material/mwc-radio":"0.22.0-canary.ea2a8063.0","@material/mwc-ripple":"0.22.0-canary.ea2a8063.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4bb5eea2b.0","@material/feature-targeting":"=12.0.0-canary.4bb5eea2b.0","@material/mwc-icon":"0.22.0-canary.ea2a8063.0","@material/mwc-menu":"0.22.0-canary.ea2a8063.0","@material/ripple":"=12.0.0-canary.4bb5eea2b.0","@material/rtl":"=12.0.0-canary.4bb5eea2b.0","@material/theme":"=12.0.0-canary.4bb5eea2b.0","@material/typography":"=12.0.0-canary.4bb5eea2b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"0b10a1191b28a4155d8f169ab9a5a3003efd3fe5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0b10a1191b28a4155d8f169ab9a5a3003efd3fe5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.ea2a8063.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-pWf1BeCmVadZRcLvLiKV4ErwZ4bIGufKK+JzDR6xvcIv/Do0pUx0rgwr0G9vCz9x1ALhTXwmW/fiUHHEsbYVmQ==","shasum":"b806381663414a25d98c560bc8d7b30b1eab302f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.ea2a8063.0.tgz","fileCount":45,"unpackedSize":230787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrWa7CRA9TVsSAnZWagAA+FMP+QCro7QkR3713OYTLLd7\nzVGGtAkKqE/o/M5pzHb1CgDOF9f1a0trdK1CSdQlTc9ofLUZx/ZtlfMM9jKE\n9y9LQmHI59ddrqc3ozqpBJn3fC0UUxOzcKpD+Lz/eA648cvivzP6M3cZV9vK\njMHwRHHLKaWgj4uC4gRfppK/XtUniwOJUr0CCz8M39K5EBg+64hJV7G0bvlH\nKGd8IW2pqL/9lPCEvdwYwJEOUqRaZ6Euh6GyWZkOVnv5t71sTE9DbcNKegRc\nURtONEwhqempPO79HmPGvipRnRwvzi8HAyaZGahiLsoaIdxh0y0eIs37KBXe\nHRU+xDTuXRDu14mD0l8qjmJaLapl7Kq1Cc3xtX29jX1K8YqKqiPJKTIBqcXt\n0l5Ron4J7oFtqXuYwe0fQOCdHuHvPDus90ZuIDBPemFGmbmW4TNFbyo/SXht\nXAZQmFvnnozCkWi6YId9AnH7JTGRV3n8b4J5Kq9rLbHWpvU/Tm/DAxWlRytz\nOP2Swly+hKTF6OUTJUjG0kae9pm/pmvBPT1yqN8DlF+r/g58NbdDJDIIquUD\nDnEhyTyh9FgOnP1Un95cLEH+tB8jBrGu8KPo2cPgAIsfbYtvOal7pWWSdIN3\neNV3TqZbb1EDE60biHiUjU6GK3aahx4Fkm+A2ltb/k2hYOVzstrrS17PQx1q\nESgL\r\n=lViQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA7alQaAAG+vIhG0tYA2dXD/V4QLAOg1sEUMNv67XWIQAiA7GxsRcQ0uZkIvvKpurMQ5vWNeqdHNHH1litXoYK0Q/g=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.ea2a8063.0_1621976762929_0.8629970412957786"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.60cd9178.0":{"name":"@material/mwc-list","version":"0.22.0-canary.60cd9178.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.fadab3372.0","@material/dom":"=12.0.0-canary.fadab3372.0","@material/list":"=12.0.0-canary.fadab3372.0","@material/mwc-base":"0.22.0-canary.60cd9178.0","@material/mwc-checkbox":"0.22.0-canary.60cd9178.0","@material/mwc-radio":"0.22.0-canary.60cd9178.0","@material/mwc-ripple":"0.22.0-canary.60cd9178.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.fadab3372.0","@material/feature-targeting":"=12.0.0-canary.fadab3372.0","@material/mwc-icon":"0.22.0-canary.60cd9178.0","@material/mwc-menu":"0.22.0-canary.60cd9178.0","@material/ripple":"=12.0.0-canary.fadab3372.0","@material/rtl":"=12.0.0-canary.fadab3372.0","@material/theme":"=12.0.0-canary.fadab3372.0","@material/typography":"=12.0.0-canary.fadab3372.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b194465fb86d4af03f65ac72d9b8427df2a2e189","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b194465fb86d4af03f65ac72d9b8427df2a2e189/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.60cd9178.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-rOFWXXkANxB/OBzkRA7Te8MNNImAGGp1R4Ag8v2ysIqsWE9WGioVYH4kD6UwpiCK4Qinp5LhsKf/7hhzI8dpdg==","shasum":"4342313696610321710f0afad97c5bcc0c54ea28","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.60cd9178.0.tgz","fileCount":45,"unpackedSize":230787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrYTcCRA9TVsSAnZWagAAiYMP/ia/iaPy0tH02JL42Leb\nsxPcJTNawVHuSKrq9/DV89Kp4McdyZU92/EtLwL1r5qbfYnqMawRLhNdPVI2\n/hbW/fMZuLccWgi2QvWf2VVi1VUJ9Mqz8kZp1zR63bHonTW6XdogTzCViIcE\nZsKh6otoFManADE8zRyMn3Z10tQyWCxs91r+ew6UAkoctFAKctulv0C9JRNc\nCO4j+7bOTMBNEYqrlj5XRSuD8SQEhdHZeSPad/d4u4Jzd3jRW/7W+ETRgFdp\nSlLLENC0CJF4Pb3zpk4I8Li1yZKXkEha3y/tKWfmfZo9rPtbsreFWjd5YW0u\nNlHTGhiTxV/vBatPqdTBisJmcdHRB31RPbTl2xOicg9QHamUY+wBnZYz3GVo\ni4CKxHnyU0fV3mE2h5mgE/kSPi2Lr7W8JbQoxoDK3M959PSDg01OGJLkQffd\nPXAp8mGxgOB8xyPAKOdlCJGU6GmChHnIZnwc44ErZz/vRWTwwwRhpRYSPuK+\nQxitf9pXPqt7qBYBvboh5S4ipJPt6UtIDcJGxN2hz/oX31iaFO9YEHuZRBn/\nFHo1TbYve70mXZWpDISs+UOEXSS7zIetZWSuEC7FA9cJwOcLSaqZ2q87Uux1\n7WrNjSEDas1/+MT0OG9la3RKS15uWSYTkk0280RCX7vdcAiK99yWj9Mqo7CO\nAu/F\r\n=TOaf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD7HJfWexSNaDfKxhikJrsMac5jiqTLx2LnbI8blxukjAIhAIjKsEWGTn96VXfs6xGCcuyJRu0iEEeWAPi+y05V+1cy"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.60cd9178.0_1621984475759_0.8550094760355833"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.2e2c75f2.0":{"name":"@material/mwc-list","version":"0.22.0-canary.2e2c75f2.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.fadab3372.0","@material/dom":"=12.0.0-canary.fadab3372.0","@material/list":"=12.0.0-canary.fadab3372.0","@material/mwc-base":"0.22.0-canary.2e2c75f2.0","@material/mwc-checkbox":"0.22.0-canary.2e2c75f2.0","@material/mwc-radio":"0.22.0-canary.2e2c75f2.0","@material/mwc-ripple":"0.22.0-canary.2e2c75f2.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.fadab3372.0","@material/feature-targeting":"=12.0.0-canary.fadab3372.0","@material/mwc-icon":"0.22.0-canary.2e2c75f2.0","@material/mwc-menu":"0.22.0-canary.2e2c75f2.0","@material/ripple":"=12.0.0-canary.fadab3372.0","@material/rtl":"=12.0.0-canary.fadab3372.0","@material/theme":"=12.0.0-canary.fadab3372.0","@material/typography":"=12.0.0-canary.fadab3372.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"7da0cb4191a309db2509b3bcff390b7ae8e4619a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7da0cb4191a309db2509b3bcff390b7ae8e4619a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.2e2c75f2.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-VTU7k2rUJy5jkvssHJ5RFCg7cn7Ua8JO7odGIHW8ZckWK5lnxR51hS82Pn0h4h+Q17hZJnlnlitJV9/8dQM4aQ==","shasum":"f983b049cd7675d0cdbfbd159e7e91171554713d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.2e2c75f2.0.tgz","fileCount":45,"unpackedSize":230787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrZJUCRA9TVsSAnZWagAAjiEQAI2FNbYo12EcYiHhOOTM\nUWFPFCjGqR8xh31k/ctVUxX/8UG6Slrc5keXjo2T9WX/hqSMdspVHhZAN5Br\nJjOD3Rr/eHOQNvPM8UAUkUsdXmpqLHX1Gd4wF6Nb2duxtyX7oGfInzkkwcdo\n5k33+Vq+Hyf4XRL6gy75Kr7c5YGz5dcts+nB6B4om+HfL85bGcTtvsvVQnQf\nCUj0TTAh9AK7TD6UPuTImpf+5/4/tVXwVjK2OwwYNmub6vU67vZBukHnoNmt\nnIk4LL3IVZvfXbCUIKqYVG6JAYyIjct7YHPl/ZL4Jd7njVCtV5e1rXmtTMG6\nQlZXKqHBXRE6ibQvAh5N+3NRSWOM2F6u/cyt6ihUhM4g/uPJGZab6t15auRM\nAYqznhzvGD5geRstGWSlJGPP1BoaLB0RW/DJu7OwQH09fBIBMIgNrpTflTnG\nQFG7+Fx1XN1LHc6nyJFTeUp4vRkeOSHloEcaqBAyBwxt+qgfn5Awovcy1zW8\nx0dg1ykY7sbgiSpjAF4IXIp1kZlp+5yqi93G5sQdyivJx9Xq3y0jOcOEhaVp\nAmPIxmcRgxU9IGXaKcnUMyMwsmyCYqtpB2PNO0015YO9+cTneTAbr+T6mWdd\nDFWZbxxMzM/mvxfx9XZin8vfI8tWKeViVb07AlFai3tYoZ5E7Rv49fwEaUlo\nz53Z\r\n=EEKK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDiXHALoQum3JkPgcOE98j/596o6BvZC1a3wfAZnNUtJAIhALLjggLC8upY8pmPAOqkmgERz0ur0bWqqhFM36Efhv0w"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.2e2c75f2.0_1621987924061_0.8409813773075936"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.b99c77d5.0":{"name":"@material/mwc-list","version":"0.22.0-canary.b99c77d5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.ec31ae1ed.0","@material/dom":"=12.0.0-canary.ec31ae1ed.0","@material/list":"=12.0.0-canary.ec31ae1ed.0","@material/mwc-base":"0.22.0-canary.b99c77d5.0","@material/mwc-checkbox":"0.22.0-canary.b99c77d5.0","@material/mwc-radio":"0.22.0-canary.b99c77d5.0","@material/mwc-ripple":"0.22.0-canary.b99c77d5.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.ec31ae1ed.0","@material/feature-targeting":"=12.0.0-canary.ec31ae1ed.0","@material/mwc-icon":"0.22.0-canary.b99c77d5.0","@material/mwc-menu":"0.22.0-canary.b99c77d5.0","@material/ripple":"=12.0.0-canary.ec31ae1ed.0","@material/rtl":"=12.0.0-canary.ec31ae1ed.0","@material/theme":"=12.0.0-canary.ec31ae1ed.0","@material/typography":"=12.0.0-canary.ec31ae1ed.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"5fda182a00532c3dce9d3841b88c80c56a8dc757","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fda182a00532c3dce9d3841b88c80c56a8dc757/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.b99c77d5.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-CWrXWm2QyN10Oj+ln2D27oPWE8myUfA8bSPwxQsWCwBrdzVL9RKiWU5U9O6a2eQragrfzD9d6KiF5k21SotGOA==","shasum":"363976d318b1487526e33979d53aacd829346268","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.b99c77d5.0.tgz","fileCount":45,"unpackedSize":230787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrp3vCRA9TVsSAnZWagAAlKsQAI8LsWTT6vtwv3mCy23u\nOiXquV3XOYVp4khXW4Jl5VZd65MoVdc54KX5Zr6pU4SYcwyUmHcy//62slpi\njuFkdRmvpecw7ra3ZNa7rw2pW2EQnFWu7hSosQaZMGQMuz5nbzDYIOfuNluV\nU76dzED7GXXueMMFuDl7Iq6CuwNHNTHEPdt7fp/7eNchXBWM/O78wfC/HE16\n0mTXEOK6Mk3hqw+dftcwO0fTg+rmxDKJX2VSqO+gjcz3SeKP1skU8nmtou7N\nUkFpucWy5vuGVsj4B6p6XA/Ky/srz9pPpRALybkaaZbKDcx8yhZpaWgtBN/B\nnzRzyueclzhhbiZ0SCrJPtkORrJejEPrakC3yI10cp6CC7xQ+e1/M91ddsiZ\nHLmUxrLlBNYplzwm2U5ICDjZEUhW6sEEfLIDC53ttkNfgcUO8lA0lDFrzDIg\npLBUI6tVPEAqLQcxrR6DLb6O2lAFLzUeoGMCQI6TF5ModGxZkjgAq+D00mCA\nPV9Q1B5bgxvWqD5TI6KfDCtDb0oAtPQ7N569MZhkn+UCVgFp+gH1KjLXtp/A\nwSY6qDQfCmKY3zrBB+JKqfJgo03nbHQMimfLvSi8X33vo+IqtPP/793a8uGf\n6OCeIQf3jMk1eAI1pOo4BGbWLt+bNgU3ziZHEi7PLw4c4eOQBOnQSPrWes2h\n4p+V\r\n=k+s4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHfiExs8ABHcVHtc+3Kq3MoCvdcVGl4qjueVDoTMU4oSAiEAhhwvTZDOncfHwzBttKDrXJzlgfK3aGJajFFu36lMGCE="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.b99c77d5.0_1622056431241_0.4759334478963544"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.0de82c12.0":{"name":"@material/mwc-list","version":"0.22.0-canary.0de82c12.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.ec31ae1ed.0","@material/dom":"=12.0.0-canary.ec31ae1ed.0","@material/list":"=12.0.0-canary.ec31ae1ed.0","@material/mwc-base":"0.22.0-canary.0de82c12.0","@material/mwc-checkbox":"0.22.0-canary.0de82c12.0","@material/mwc-radio":"0.22.0-canary.0de82c12.0","@material/mwc-ripple":"0.22.0-canary.0de82c12.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.ec31ae1ed.0","@material/feature-targeting":"=12.0.0-canary.ec31ae1ed.0","@material/mwc-icon":"0.22.0-canary.0de82c12.0","@material/mwc-menu":"0.22.0-canary.0de82c12.0","@material/ripple":"=12.0.0-canary.ec31ae1ed.0","@material/rtl":"=12.0.0-canary.ec31ae1ed.0","@material/theme":"=12.0.0-canary.ec31ae1ed.0","@material/typography":"=12.0.0-canary.ec31ae1ed.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"02037fe47532247fb8d3f160ce76eecc87a64963","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/02037fe47532247fb8d3f160ce76eecc87a64963/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.0de82c12.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-MU3J+Fo6dMxZmyltcwteNo4GNbuNmKrRGadscI40gbccRzDGM/jr2KrMtm+RdSwRLwrBmLfMQmszo1PZSSB1ew==","shasum":"72f3c18497dc516f0ad66f991c7dd7ea60f07f1c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.0de82c12.0.tgz","fileCount":45,"unpackedSize":230787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgrr49CRA9TVsSAnZWagAALggP/jkXkjtXfs0XpiA0a//n\n36izvMLE1S8Re8sfn8ddplZdHYW3Myb8Hq12SCdeScYKUY2FB3eorGcmQ/7n\nELAOixuTXfA/CCJsh/AJo6owqN6ILcom+4v4zApEFcZZrOE2HO29YyCvnEiv\nKY5CMNAs85dlqxicQ6UqD5xctcIy+xKQL5z7xZ/1+NV9cEheKQO7HcFE9uVi\nBO4EZ6gIlcchLMhyCDm9xzrOMIJnSL9RscRnjXQBZvkYei//XmU/bQI95sBx\nH2KZz3L0Hynj1VghtzXClHRa2Ug7XJ/shLKaQxTo/eyqzjfcRjjubBrAFFcI\nVO1alehtQvpoPTD8vG+lbuLOzf9QoqZvbeYCvoPuRogZNDwj+KqXqfzYg0zE\n+Ra9/nzMqsGansVW4TG4pF6lsbUAW+uvxWwPIM+DISaw9me788KFFl3Ai6fe\nBnalt6RDuNxxNQ0F6DpALtT6AT6WmKeeAtHU/telwMmDnAWOas8KEtu0bmpF\n1B/3/U23rWy5t8p7S/oii1Zdd2hK0X4oQ0ne0D1mBB3jdmqg4Djs4249jpxt\n3QLkYAPjybuIvghJzrcPZgBVpEO1fPpt+8U/t2WjEOG2lrWDDdOOm2ZCTXAe\nL7ew3DSMfpmCoCR7jKJM0ITVLKwO8HiMY2EC2tJNmXPI3CRF0QNuRzvZvajP\nPjT7\r\n=onDw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAzDm3zRWzNWh+9M/RC/qL+hbXxJ/z669UyAmBKGDTA9AiEAq+S9v8BPlyXAS2BTVIYfyUz/VMx28+V9vQf1xfgIARI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.0de82c12.0_1622064699470_0.8707297188951297"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.227a4614.0":{"name":"@material/mwc-list","version":"0.22.0-canary.227a4614.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.ec31ae1ed.0","@material/dom":"=12.0.0-canary.ec31ae1ed.0","@material/list":"=12.0.0-canary.ec31ae1ed.0","@material/mwc-base":"0.22.0-canary.227a4614.0","@material/mwc-checkbox":"0.22.0-canary.227a4614.0","@material/mwc-radio":"0.22.0-canary.227a4614.0","@material/mwc-ripple":"0.22.0-canary.227a4614.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.ec31ae1ed.0","@material/feature-targeting":"=12.0.0-canary.ec31ae1ed.0","@material/mwc-icon":"0.22.0-canary.227a4614.0","@material/mwc-menu":"0.22.0-canary.227a4614.0","@material/ripple":"=12.0.0-canary.ec31ae1ed.0","@material/rtl":"=12.0.0-canary.ec31ae1ed.0","@material/theme":"=12.0.0-canary.ec31ae1ed.0","@material/typography":"=12.0.0-canary.ec31ae1ed.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"882557fee992155765312df09397dd80bd837720","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/882557fee992155765312df09397dd80bd837720/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.227a4614.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-wLRIKH21tpS5nQBk+j37st5YYG2kwfW4wAKeY6D6A36en9z9U6TKWlC/aza9ubziJ3C9r4G2VeFpA/LVx9MZyQ==","shasum":"13edee80fdb4d28cb779e22871dfbd4f095b3244","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.227a4614.0.tgz","fileCount":45,"unpackedSize":230787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgr8LoCRA9TVsSAnZWagAAc9wP/Axs32KMLA/NLzvKaq8s\nWZNbJ52Nqc4l7nP08J3JGazFz4o8CB1t4hNe3aHX8rwbVazmHGV65NSwwXZf\nwA2+pV1T/9cf+Miilho4Q0FpOw8rbGKU7YZFmr+11KHQYuSA4I5dDoh9j922\nqBpVzrE4zRitlFa62+korinCGf+XY2FPGG6lMZz6PUXvT7P7La9DuORwwpjN\n4bqrngl0ZH7f4TAnVB4T7Tq8POeixvw6m7A3WUpxUyOuZR+c4VhEIswizNqG\ndURyrsc8qBPjmzblnZ9roIIYuOHf6ws0nU6MTYlUBqbhZKXLo4DeY8t7uhZ2\n9UZKrNEkWloNISMe9J5tqJHIbVa8IICNOb6iQs3a1MDBQoFL/bgqqcYy2u40\nlGOlqr0v+xOaQBw68E61WnNE/V9zRYeVEjxMTTay+9Sw/qQZfPmoC2uui97j\nOMxqDUzofQKuIr3858oXEq4p8Uw/Kzm6Gelb7D3z/GS/pEXQFmYElGFkXRXV\nGeRzKHfUEjSivbKnIJy5bYPKbG//aUrUJ0Rusmn9D0CKEluK3EcMozKRm4uu\nxeInO1Mv26VTEi2v6kqfXSfGSFTY1NP2k8uGEDeubI4nFoz6dHtagkUsI02j\nCv/FE0H03cZWftWKu/S0K7O0NYrYHCnSRhqP5rOTwUtwalFBXIf+5fO9T7bn\nkCjD\r\n=wTjR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBxApMh4fdCFHjR3XTzXcTFpPomEMUjW0tQDYUUAl9iqAiABQ4SlTVhyMso5IHV1ktGbE+qeIXYsibPopkToqCV5GA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.227a4614.0_1622131431771_0.3002550922734821"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.b3d21d31.0":{"name":"@material/mwc-list","version":"0.22.0-canary.b3d21d31.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.8530d3514.0","@material/dom":"=12.0.0-canary.8530d3514.0","@material/list":"=12.0.0-canary.8530d3514.0","@material/mwc-base":"0.22.0-canary.b3d21d31.0","@material/mwc-checkbox":"0.22.0-canary.b3d21d31.0","@material/mwc-radio":"0.22.0-canary.b3d21d31.0","@material/mwc-ripple":"0.22.0-canary.b3d21d31.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.8530d3514.0","@material/feature-targeting":"=12.0.0-canary.8530d3514.0","@material/mwc-icon":"0.22.0-canary.b3d21d31.0","@material/mwc-menu":"0.22.0-canary.b3d21d31.0","@material/ripple":"=12.0.0-canary.8530d3514.0","@material/rtl":"=12.0.0-canary.8530d3514.0","@material/theme":"=12.0.0-canary.8530d3514.0","@material/typography":"=12.0.0-canary.8530d3514.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"0346549e5547eca4c47152eae0253d802633b850","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0346549e5547eca4c47152eae0253d802633b850/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.b3d21d31.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-SpnOrpa+RMVTm+x6TEIuUDj1MVDTFhdS77Y7tqn46vh1f+vpMLAZ7W9suhGZgd6kDfGdeBKqwROtOrjljkX7Og==","shasum":"c5e377420a5e3e8016ac0d12b448b77fd370abf3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.b3d21d31.0.tgz","fileCount":45,"unpackedSize":230787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgr+jfCRA9TVsSAnZWagAAP1IQAI+Scb23iYFZnr3lvqze\n3DsgPMGI5zs/A7VrO2nv5xGcC8EoFS+012R1W2bgdTyy5vGNLUdUXDZeHnSO\nWQJyUcceAxB6u4uGm3uFaVLnc07G4IquXRx6j5yUgyucmXxni9y5fTIvRnfK\noX4LbQDTOH4qzRbFmwf5SmyhSXbr8PtUs2lpp2s4MRBdsoAM2XyjR3SjP7n5\nx7cXglK4R00/zae/y6VflLrNe/ama9vanGvSbMlmJzwFoiTKE5QpYTpJPqOT\nUE5angOCSF6OP7GE1pQCmfrLjJQIHWYQdtcjll5WDxMjOtMFlScAzc6bYqpn\n4euNBZZBkUtpvL9TSdR2OdC4YcX9UK4NrrqnkpopnqkKU2of2B2+oho8WJ2w\nyGQANz0sY3s4dUkcSgnKIZPvm/mCD6/VCJknhkoeBkEWS0b43XZ3VGnEwegN\nuLb+EiBGCkHwk/HfdLr++X9+uP73qJNLHkhzc6rN9WmxgaRa/RaDFK/vUAgm\nP08hQAoQqJdPrdW3NutamVAds/hT+seIsUjt+U8jV/stY7Lo79DicShfD046\nIVFtl4IdJrlMHhNdtGWRI0QBhQnE0MUuf3rKyqoJO7e8GKIziwTYKkquu4Zw\n0pZcbxiDCV2taa4k0WmWI/6WGli3EZngCqO2sIJoMNftk4lNx0MX/5rGrZig\n+/5g\r\n=b0b8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCiXtHQWzdDwOFOJzhuGN/ZQ/85e0tAxNLwXudZQ/OzAiAdAIzWlZUotlv6VKErjhG+OWUtlFij4GgxWcVI2bQu9g=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.b3d21d31.0_1622141151024_0.329446902757653"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.288c33ec.0":{"name":"@material/mwc-list","version":"0.22.0-canary.288c33ec.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.00b5899dc.0","@material/dom":"=12.0.0-canary.00b5899dc.0","@material/list":"=12.0.0-canary.00b5899dc.0","@material/mwc-base":"0.22.0-canary.288c33ec.0","@material/mwc-checkbox":"0.22.0-canary.288c33ec.0","@material/mwc-radio":"0.22.0-canary.288c33ec.0","@material/mwc-ripple":"0.22.0-canary.288c33ec.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.00b5899dc.0","@material/feature-targeting":"=12.0.0-canary.00b5899dc.0","@material/mwc-icon":"0.22.0-canary.288c33ec.0","@material/mwc-menu":"0.22.0-canary.288c33ec.0","@material/ripple":"=12.0.0-canary.00b5899dc.0","@material/rtl":"=12.0.0-canary.00b5899dc.0","@material/theme":"=12.0.0-canary.00b5899dc.0","@material/typography":"=12.0.0-canary.00b5899dc.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"69149a859b2cb2efd7d7cb7a55acad20d60fbca2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/69149a859b2cb2efd7d7cb7a55acad20d60fbca2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.288c33ec.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-CjaDQZQF82dBHni7AejK036EqqBvqZFQYIjIIVm7VbiIC+XZQgoODL9fwetaSqamxtbHOS/0QG7sa2qqqGnUrA==","shasum":"34dcf35d636e0ad85a5f1521b41e061ad3ce68aa","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.288c33ec.0.tgz","fileCount":45,"unpackedSize":230787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgt90QCRA9TVsSAnZWagAAtfcP/1w7YSXH5Lvj7Dd7JP6L\nE9V0QVzvhv3aMK0iHbuFOIlPZ7k2xAg5e1nUTxCLJrRqH6Y2+b5UugccZBBk\nTfbqr/opTKhncd4bbHYigTVKBs5oxURuEl9M/+vPj1+RMy7U7I7NURwBhWov\nbr3m7NFvJEiyaOf8CWGiYxcudjo0BC9oYQt9qtOUr+cjM1HQkum5qLOY1pPx\n2VFMVVZRgYZ8zCe7sDmCVYXoYKbj1Ufi+vAl5oSoQmGh4q86tdUewFsr3tK7\nU4MkalwYovn/cTMWlGtTSf5X+EEsBwKtFOHwaKrii0kXM0c5E7NczNXKj55G\nnUxeJJuUVnMgL20Q+LHYs3j+yW9zQhJAjZmg9Az61QyfjRSZ2PIyrLE/O/z2\nZHLAEsk1SlIHlWRAdkwNk7C85nX8BIb3aigJ++ykWYs5J/DYjtZ2ok2mrGP6\nRgKLYKENc8rmsvqj8HN//JRn2V091hY1010XfjWb7bBWnjXRmUi/wjyJrqzv\nrph4ZfdVear3QCLf7AJubkpeXBV75wirACcfYhACVlCYLukzBgq04XvXYAE4\nsTJaUOnlT+d9dhG/oQSvoJPulMe7Ebf6jFJcHY19c6rPZy91fUo1HmuKWnsG\nAlGF34YaNNFTOFQzSnTi47VGCwCciDmUZEY8lx1fubOFVKwUNpVGWKbooE1h\nknN/\r\n=/Lfs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHFLsHXl63qp6cY/lOkD6NR2YPnsFskQaPCXPhBwyYr5AiEAoJWiGImlpo49wX3UK2X9H7jhB7mZxu9L3wu0A8vFRBo="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.288c33ec.0_1622662416268_0.8777163573008784"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.7eb7ccb0.0":{"name":"@material/mwc-list","version":"0.22.0-canary.7eb7ccb0.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.474de7878.0","@material/dom":"=12.0.0-canary.474de7878.0","@material/list":"=12.0.0-canary.474de7878.0","@material/mwc-base":"0.22.0-canary.7eb7ccb0.0","@material/mwc-checkbox":"0.22.0-canary.7eb7ccb0.0","@material/mwc-radio":"0.22.0-canary.7eb7ccb0.0","@material/mwc-ripple":"0.22.0-canary.7eb7ccb0.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.474de7878.0","@material/feature-targeting":"=12.0.0-canary.474de7878.0","@material/mwc-icon":"0.22.0-canary.7eb7ccb0.0","@material/mwc-menu":"0.22.0-canary.7eb7ccb0.0","@material/ripple":"=12.0.0-canary.474de7878.0","@material/rtl":"=12.0.0-canary.474de7878.0","@material/theme":"=12.0.0-canary.474de7878.0","@material/typography":"=12.0.0-canary.474de7878.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"54dcd68c7454a24c791e5bc1bacb53ff095de147","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/54dcd68c7454a24c791e5bc1bacb53ff095de147/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.7eb7ccb0.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-pWazF/aaQr8HVC3su/e4OT+fRno23iL3ej9iqqAkGiYnE7V8qaOQqYiIyYZoc8V75eZj0/UukzrXtOmveq/2Iw==","shasum":"25a745fc13d1b1bf23fecca491100b44ed74ad77","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.7eb7ccb0.0.tgz","fileCount":45,"unpackedSize":230787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJguTO3CRA9TVsSAnZWagAANOoP/iY+q0v/2t78w8wKJejC\nBWHjo4R/d6nIRz3BqD8yM2Wr2lgXu+ZeqgMFl5puR2KqWvikyG50pkIolpcN\n4Uyp26Y/nKrdOxWIjzYZxxNiKjFYT9Jxzqrk8XwgxHxuNijVQwnKMCYyq3PZ\ncP/Dw9ksXGu3lZzbqfc7YecqlCRVSzvTRpR/QVd8vAasfUOWy/6L6l40IiAH\n/QvaaftVUefDi2A92WlfZwgDvZA9t52ONuBlij3f2oosfDt24yugL+lFMDTn\nnH2I6wFZGIHEnInCXc79CT5FOee+fGoWqEhUj1U55z7WCsPrBuWwRL9w7dqx\nITYLDALoQQS0vYW+xZAo2xmEpbi1Oigi4H8SNKNY2dcFerHwBcLKyL4QWHaC\n/SrXNi/hMfQaNEYVa+LJy8CsGM/elEGHB83WG2DV57KUth195PjDQdm04Xh2\nlbKdf5ZqIoGw0qdS0cp+v0uflNZhzvEUrn4pRiVG3KRt9Ztsu2OTNeeg1WTM\nryOs+zeseYza5JpdwkYU2ldLNiJhK2E7l5ydFGcKx9OQUCHOyFpDTT5RIgei\nnkq3oztead1wJQ8faKNCyDH4t0QxWMvAHeS2Henq+zWUlhAS/3cFAKOWTTr7\nnZKTk5dDrAUi82DTva92Xx6/06OK4oDHq7mVOZs2+NTaV9cvinK+3l3BMb8E\n+1ME\r\n=ZXVP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMKjAXCdXnX+9FrKlcLCYe/wxkvIqooR133YcuYBTK0wIgMHktgXv24oeQm5B86ifj3NU5Iz0C3uwuIbHEeH48Sdg="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.7eb7ccb0.0_1622750134975_0.7238109376987456"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.7fcc0726.0":{"name":"@material/mwc-list","version":"0.22.0-canary.7fcc0726.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.474de7878.0","@material/dom":"=12.0.0-canary.474de7878.0","@material/list":"=12.0.0-canary.474de7878.0","@material/mwc-base":"0.22.0-canary.7fcc0726.0","@material/mwc-checkbox":"0.22.0-canary.7fcc0726.0","@material/mwc-radio":"0.22.0-canary.7fcc0726.0","@material/mwc-ripple":"0.22.0-canary.7fcc0726.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.474de7878.0","@material/feature-targeting":"=12.0.0-canary.474de7878.0","@material/mwc-icon":"0.22.0-canary.7fcc0726.0","@material/mwc-menu":"0.22.0-canary.7fcc0726.0","@material/ripple":"=12.0.0-canary.474de7878.0","@material/rtl":"=12.0.0-canary.474de7878.0","@material/theme":"=12.0.0-canary.474de7878.0","@material/typography":"=12.0.0-canary.474de7878.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"55ab1f053532307fcc5a331fdc4718c7d8e5d8dc","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/55ab1f053532307fcc5a331fdc4718c7d8e5d8dc/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.7fcc0726.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-o9qHp72xNa/VqyxwcWLwEsFTUgg2xL4x33J+gtV6eGctT6xMOPz740FE4J0nRuipGXk84nA1ifxqCle9a9iyQg==","shasum":"690784448e9d8e000116df7d281bc59271d77fb5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.7fcc0726.0.tgz","fileCount":45,"unpackedSize":230787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvr3MCRA9TVsSAnZWagAA0RUP/2j/d5gpBHZhMOSLWZsp\nPXaiOQo6yX/xQwivEvM72ljKnplG5FzSiUWMGKlA3GFZbHZ1NMZKp8MOvuKM\no8WDkM9FLWFnp4IKHfyG4W/yBrGlhSECyu3Hb06dmDnt0JUrJQYjmGNRPukW\nsQnMFbDtrxB/vltG538hHAzAUKE4b7awo+/HPY94CrfkAwUoGI56LBHMistJ\n2GNn8otnGmwy5kKDi0Zoc67xu673edlfqFb4Yr0c2jA4NFlOTVLmtAqPUfoJ\npJD3x7FqIcQ9+qDxxkY+TlXS+ZWMRfI8XM61p4Ii4FUpeiJDe84HNhyuq2Mh\nXRk76Z8BqzTb0pnYfHTeTnWKY5IqNre3qhzQGywh/0E8b1frdecBGrHj6FCe\n2yp+VyWVCH+fUvxYkIbso8+vEP7vtVyZtVI5hmT3dwNGeHjRBAaA1ESuzAfa\niyOFx4Dqz1HgevhkpfMtpojoTWJqC2RJ+PjPFCDPev9VS+K/CRXCcgtAfcI5\nIQA6fEfh06GOec9pgG8+J2bGzFbWeM71Kd5NFpVIh+UTwPMrx1sNg4q/zm5Y\nNfT65VObZfTy+mDTTdqtnvzpPetZ8QFeRHumQobl2sV1XniNK3TLBcWtuwb2\ncz/XqMff6Z02KFpus3laT5tPoRjzLQV0X1oPmUfhkKIe8cH3avtVNPhyyMxg\n8K2V\r\n=Ryz8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCgkAlqjE4eGJDBaWiHBEL+Y+YbU/d0BVMYErHplL2kVwIgT3m5hkHd7l0mj8iZXDK+Rewe5mm652ZfO/m/f6sI9B4="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.7fcc0726.0_1623113164599_0.7690770035057517"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.220a4e5e.0":{"name":"@material/mwc-list","version":"0.22.0-canary.220a4e5e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.474de7878.0","@material/dom":"=12.0.0-canary.474de7878.0","@material/list":"=12.0.0-canary.474de7878.0","@material/mwc-base":"0.22.0-canary.220a4e5e.0","@material/mwc-checkbox":"0.22.0-canary.220a4e5e.0","@material/mwc-radio":"0.22.0-canary.220a4e5e.0","@material/mwc-ripple":"0.22.0-canary.220a4e5e.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.474de7878.0","@material/feature-targeting":"=12.0.0-canary.474de7878.0","@material/mwc-icon":"0.22.0-canary.220a4e5e.0","@material/mwc-menu":"0.22.0-canary.220a4e5e.0","@material/ripple":"=12.0.0-canary.474de7878.0","@material/rtl":"=12.0.0-canary.474de7878.0","@material/theme":"=12.0.0-canary.474de7878.0","@material/typography":"=12.0.0-canary.474de7878.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"43930a9e907fac042066906c7c9c4a9bc26e3233","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/43930a9e907fac042066906c7c9c4a9bc26e3233/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.220a4e5e.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-399rB8wlF3uLQj91t9qe+E2NLEijRiTcQIownVxDRFTRoxIFNcKSlj8Lbqvpl+S9qd8aQfjoc2iwxD7c34cPqw==","shasum":"a1fb825ab8f7c5b0559827a7f44a6de320d3271c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.220a4e5e.0.tgz","fileCount":45,"unpackedSize":230004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv63xCRA9TVsSAnZWagAA4OQP+wRNGPkOUmXOsk0a4BlG\nEzgD0p9pL2LQpNYWi4QuOdXcVUBusS65vhdXtJ8ASpWqZV8r3mHxys9ckF6Z\nIxCEyhwGsyCV1ljyLlYUSV46r5046ifuXdaqdVz+yTckGDcxQ7r83H+dYIQj\nSneirZeYKl3+yudk8doBFbFwhpGMKpjTcepT1jy8f3uiOL+oR6iTXESPdoyY\nrz4YbSBExwTbA/zBdwskdKdYLWDepEnG3fxyd0N+8S9i9zFjC3J2NVHrRJ/O\n0IYriw4i6K9FJPA/1y2aRKgCxic3sH6ZhpEcWqtnfK9mbCn7PwVAC9fgYiQZ\nwTikc/aa99HhZZMar0qfpJZ5tStaLbNTn2spm3EWjDiLaxLvbneb02uNg90j\nSN9TdSY4NTLnnJyfyTf7bCrpCHRQ79z1QPSL5CfEMcckspSXq/tg0nxWvXFu\nwIo1N94sdxIkgr1CLJ3bzvV6Gr/Y5St4R93azMMwRbEBv5OxKdMwFc2KSiBz\nqae5PcC1/9N/gpbNjNK9yBO6Y2xSkxDXR66H0H/kBsqD3ZRSKwuWTqHkyvZI\nRzdQOJZHd7RDLAPcIpJArfadhhGM4pFtgZfnILeBK4/Isp7F14B8+m4OY5lu\nKH/Cs2zfQrPMe9p0U0ktKj6Eb5QAe3UnXg1QuNIAkOgl91fUJS+0iUIrSG5A\nfekR\r\n=KpQl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAv8s55XWwsdhMUvJF6hfvrgUegvBCGVbfSOkBYtJqbAIhANiiewTxd7MiYFEaEwAaCkFNj7smHQFDpoKiFJC6cOFB"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.220a4e5e.0_1623174641548_0.16110101842408953"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.6b2d6ab0.0":{"name":"@material/mwc-list","version":"0.22.0-canary.6b2d6ab0.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.474de7878.0","@material/dom":"=12.0.0-canary.474de7878.0","@material/list":"=12.0.0-canary.474de7878.0","@material/mwc-base":"0.22.0-canary.6b2d6ab0.0","@material/mwc-checkbox":"0.22.0-canary.6b2d6ab0.0","@material/mwc-radio":"0.22.0-canary.6b2d6ab0.0","@material/mwc-ripple":"0.22.0-canary.6b2d6ab0.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.474de7878.0","@material/feature-targeting":"=12.0.0-canary.474de7878.0","@material/mwc-icon":"0.22.0-canary.6b2d6ab0.0","@material/mwc-menu":"0.22.0-canary.6b2d6ab0.0","@material/ripple":"=12.0.0-canary.474de7878.0","@material/rtl":"=12.0.0-canary.474de7878.0","@material/theme":"=12.0.0-canary.474de7878.0","@material/typography":"=12.0.0-canary.474de7878.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b5388003b8ae379bc5c274e40db94c05a19d7ea1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b5388003b8ae379bc5c274e40db94c05a19d7ea1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.6b2d6ab0.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-d+qkOl78kgk04vSFmmDxeax3iOBhD/kaepn5qb2uiPgklDjxaDOWh8LsqwI/crZlCbob8OQy8Vgo2i7Ndz24PA==","shasum":"4e6325c278a55ae7b129efa51529afb019b8c5d2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.6b2d6ab0.0.tgz","fileCount":45,"unpackedSize":230004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgv7jXCRA9TVsSAnZWagAA15QQAIMcKW7jv/WWyl7gydtC\n+pAo4Mu9SiyRRnPhrkVTQHf7ZEI9lgwU4ZVIx+LuAcwWMyD+OEdKKdNTsj/V\nSd6K4UFZ8OjJytY4KS3A0k4LSDVbbxgfXB/fNd8oNzEIdM8uLVU1lv74CECF\nYgMmuNs080dZ5UKURl9OKYAqVvkf6GE9GRuDPNMhJqFHrnsCs8K0+HBn+g9X\n8UfWaLSO8CVZ6iUNAUPlaHLvst6oQoQfQccmY2nOaGMwMBdy5EQfcFh5KSSG\nW4yaIcsUPKfcztAO/3F6qEzRTVKX0j0PXom+yPvwZ8DbSk1rW4AENfK/OnVy\nz08E5+XoDfIZfsXT3ukFSpXRmdIVwiWdX9PbzBFVah6BofAJcPed+VULH9gF\nKHU606pUP/iwrY+Vr7iOYbvisLKHll4aVxtrHi9E7PMFdPwNeQPoLN5A6zLp\n9EIj/GS5fvEqHBBXPVK3oy9teqj3GaHixv/6X7KKPcfTcGPuyW/X7u+EdrDy\nBMaXMoIDjL3hEU+azbAq3v8yD+2PyAxlyhmYtmq46swNkgzgMaC5MgR//iEZ\nh1dRBmTGA/DFEZK+LxXMec5cXzr4JICvOBod8MWzlQL9YnQwgn3Gh5PaZESS\n0d6PiCpr4XNsC43rFP2a4yKBoCD3SnKBqLP6R57FYnhpXNgW7HZGPIFO7/s7\nUvMX\r\n=tO3A\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZY6983Z2uReXz/eBOttr46xrMEikGLaI1WNKiB/80RQIgNJtyAKtM1MItWY9+cNXVuUMIggB7mGscb9MSZw0BJWs="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.6b2d6ab0.0_1623177431689_0.12264048678748574"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.2b20825e.0":{"name":"@material/mwc-list","version":"0.22.0-canary.2b20825e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.8415ae585.0","@material/dom":"=12.0.0-canary.8415ae585.0","@material/list":"=12.0.0-canary.8415ae585.0","@material/mwc-base":"0.22.0-canary.2b20825e.0","@material/mwc-checkbox":"0.22.0-canary.2b20825e.0","@material/mwc-radio":"0.22.0-canary.2b20825e.0","@material/mwc-ripple":"0.22.0-canary.2b20825e.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.8415ae585.0","@material/feature-targeting":"=12.0.0-canary.8415ae585.0","@material/mwc-icon":"0.22.0-canary.2b20825e.0","@material/mwc-menu":"0.22.0-canary.2b20825e.0","@material/ripple":"=12.0.0-canary.8415ae585.0","@material/rtl":"=12.0.0-canary.8415ae585.0","@material/theme":"=12.0.0-canary.8415ae585.0","@material/typography":"=12.0.0-canary.8415ae585.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"8790f27506406085c946b5033334ea71328fcb6f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8790f27506406085c946b5033334ea71328fcb6f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.2b20825e.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-t1DjDc8ncmH6QHvDFYJsEVma9k8mIPxhL4IN443qRDeBMn0zzf8YglHsqwD+bFJgI+2SQ6f/Jef4sIoKG1QPJQ==","shasum":"bfffbb987d91553ac58e927e614c4fd511a5bea2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.2b20825e.0.tgz","fileCount":45,"unpackedSize":230004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgw/aMCRA9TVsSAnZWagAAno4P/0UbnX0io24yJ3rb+ZlX\nqxN2V5FI8bIkxJjxzvwkoUryz5QY6iDyJuy9FISGs3MoyZste9ITy739ZKNZ\nrRQd8wzHiQFW3psU4NkULJqseHp9UtBB1K8tzV6raRMJnS5ytctjwGMJ8ftZ\no961vlEysRYNWT1GdQpURPHSj57Oi3m0p3mGjBuMpf+EksvyydMfUAVXcI+W\nXZAF5ZyOevrX41STw7ajqmwSSVjBvuKV8OITgTsKjWPmbpUAWJo2Tlu9HBv9\nNDEjwxABD/PXKLCTJy+3gRH1jdScBYWwwg59LnncFBnULvA4qs5mb2c97f3u\n+fcMGKK/Aphjph7bbIGZ9orlFnK/gPeGbSPFZj09PJhEtpY4hi+LM4aVjPR2\n4P6yVz2qjKpcKoLfmsdEDdyduVCQjKyxUwPC+lql37ogvHlhtUUsPomsIPgU\njuR2uK797ncjGqEnEXetpUeeM2B6HiCL+jvTGOWRKgKYrRUIw3YoebgQ8ozX\n2hxiEXufIVBudGPXvITE94H6k2K92shBLsJd1eJb7H7Cdsuf58mjCofiwfvT\nG8udDeOXXieICwpBoQA98kp/YA7dDsclf8s5ow47wJ73/Es4cgibsqrA3hlx\n5zmsocJCo5eBFpgXZokC9fEb9O1Ofog9Ik4ScJ2SiAsvsHWjj2RSNJg5aAvD\nKXg3\r\n=ouZU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDN14DVEAym2MdtdaC1heAQGFoW+U6CLjwCNMDuJF9pfAiEA0AiPKhiaoWjUkqupeBiEbwp/zVzCcYOo0WbCPg+zVcE="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.2b20825e.0_1623455372360_0.5626103388098387"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.e1511867.0":{"name":"@material/mwc-list","version":"0.22.0-canary.e1511867.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.8415ae585.0","@material/dom":"=12.0.0-canary.8415ae585.0","@material/list":"=12.0.0-canary.8415ae585.0","@material/mwc-base":"0.22.0-canary.e1511867.0","@material/mwc-checkbox":"0.22.0-canary.e1511867.0","@material/mwc-radio":"0.22.0-canary.e1511867.0","@material/mwc-ripple":"0.22.0-canary.e1511867.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.8415ae585.0","@material/feature-targeting":"=12.0.0-canary.8415ae585.0","@material/mwc-icon":"0.22.0-canary.e1511867.0","@material/mwc-menu":"0.22.0-canary.e1511867.0","@material/ripple":"=12.0.0-canary.8415ae585.0","@material/rtl":"=12.0.0-canary.8415ae585.0","@material/theme":"=12.0.0-canary.8415ae585.0","@material/typography":"=12.0.0-canary.8415ae585.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"37d9e0b693215142b4667122baccbb1b6fc9f835","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/37d9e0b693215142b4667122baccbb1b6fc9f835/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.e1511867.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-QlgPgjsaq+5B22WrltHQtFww6QL9X7br4sviz5fCDaQcoA8t6QYbolIVAFauieQ9hLvuz2bhI5pqrjpoeqJ3LA==","shasum":"67c2fc885e2dd4d4450a1d422991e50fcac5c9bd","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.e1511867.0.tgz","fileCount":45,"unpackedSize":230004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgxAaNCRA9TVsSAnZWagAArTgP/Rpc6r650lmCWQTe/rYJ\ngqPGC09k+FYpQEP4Ulj6vanrm3ZpZVSY4wyqhKqh8sViRF9UHfs46YYMAqMU\nzbThvoNzOfNbVucGxlYB3uvWWWO8HQpvN4AVSvaVVkRP2SnUDYEw1LAmyLPy\n/ymj8bqINY1+ad4WdqnRMsutqCh8rRJ1y8esYoKI8Ql0GRXy3E0yGwyyyiGG\nszUUiYXjVC+RL2xW22+coMWD/72xan1/YzgRebZg6fEc77K92JJLeKhhSPmS\nFw1rnSYiyg7vudkhY9SJ07EZp4nCN5bGBC7wrub5lxrN+PSYzqGVtf9nUCTV\nNdO2/v+BD5fCvmOWO9NKmJiCI7hufrRDZV2u8LFsPh+0X3E49TUAhLQtGVjd\n2ubdDlMvz8zv9mIoCgaxEVTTc3Y2TGXyc0KQYOHMIu1r3eUDbfxrSo20aInK\nBuJV5aJoEsAOU6u5XpkZ6oLSrIfME867q732pmjyAhXtUvdvCejzpEOmJ4YO\nNhzEP1tjLRx1n5hodc37OhyCGmIhFPIuXA3YHxUNDptt74rtWKZ6WRcIl/ec\nukupIspDTPgoNDI3JfNE8UNYxxJhyJ67eB81KNMXXzAFDKrriBPSwsnRI+69\nX+8q2u92EE/Vez28v+vu4mqcZ8JkE0E9vG6xTWWYU5Q7czEM+0oKr4FY2Gvm\nZQZd\r\n=FfT/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD8jIBaCoJ7xcGIEJ1rh3GSsM8h4fytVA2iM14JXIWOLwIgNRfe156/FE3gctOYpDaHtXh82Qacwd6s4logADOBvV0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.e1511867.0_1623459469271_0.5044358264073987"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.ef4a0c0d.0":{"name":"@material/mwc-list","version":"0.22.0-canary.ef4a0c0d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.8415ae585.0","@material/dom":"=12.0.0-canary.8415ae585.0","@material/list":"=12.0.0-canary.8415ae585.0","@material/mwc-base":"0.22.0-canary.ef4a0c0d.0","@material/mwc-checkbox":"0.22.0-canary.ef4a0c0d.0","@material/mwc-radio":"0.22.0-canary.ef4a0c0d.0","@material/mwc-ripple":"0.22.0-canary.ef4a0c0d.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.8415ae585.0","@material/feature-targeting":"=12.0.0-canary.8415ae585.0","@material/mwc-icon":"0.22.0-canary.ef4a0c0d.0","@material/mwc-menu":"0.22.0-canary.ef4a0c0d.0","@material/ripple":"=12.0.0-canary.8415ae585.0","@material/rtl":"=12.0.0-canary.8415ae585.0","@material/theme":"=12.0.0-canary.8415ae585.0","@material/typography":"=12.0.0-canary.8415ae585.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/97de9eb21ffb99cc05f4ad3fe8dc24ffcb569bcb/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.ef4a0c0d.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-RD11/wLdZVFUS1eAZgpRJ+nzNdzp9+60Rvqr+2o0Hr5tFhqqM9Wba8WP5ju6//0TOj/GUHx5WK39ln4pP+WDEg==","shasum":"61d75ec82eb8b0ea16cfaad403b292b44eaa7c92","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.ef4a0c0d.0.tgz","fileCount":45,"unpackedSize":230004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgyQT7CRA9TVsSAnZWagAAcugP/R9eRBVCj0sNbYsGm+/z\nSdYZhXzktoqJFWw+fg3SPaP53B9hJ2FNnTEJTydtCrZVQefjYngnoE05PJAx\nsyYXwjkX8mmVATY2dWFG628RM2Ksw9oM+YzEsva5q4IZ7Cec7nJy5N7lPugD\naWhiNfKMj5HXpauhQUQqzh1/OLlStD8A23OLL2Q/PcC4D5Xysale5hdrVcmX\nBCLer5ARb0KbiD/+/q/7H8hN8itMMb37B3M7aqYYjQojSAOoY2yEdv7pDNlm\narGe3PZvKk8WONyIwzv4U2PRtSkuUXzgj7A2SzFhWnjO92rqnus2e05AHcfq\n2VqoyhIkG+fUQ8EuMi2b3C2WvOF0nLHV8/NWstE1RPmYLHx11iD7Ha953FVA\n8BhbfdEz0BheuVY1sXDm8lnNRQjf1iDBdJ9C53mOQOOjevoYtwCrSn+KMTc2\nbrvbRGSR6FW+Sxqbt3ce7AIDagLXCPd9Ps1XbVX3FggXUz5dhdfoClwLR8zR\ndVc0zczDJTMGwD9JLZKuLjnWWHzcgJphee5iGz0huC0piS9wWGZ1AqvK4o2X\nYErsCABaXP79KOAbfWf2NREm0H4Q39yUaujDxMUeyrAqakLDdrbk5+cXEHFY\nNdJJ8HNHuKBbp/OPchL+3PrgRixs8D7PC/P74a4OeHgb8BrnR+vO87U1P/4v\n50KE\r\n=eR3V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGmS67q7uew6z+r2sYcTuYD6IMkqum5EgakeL6qwScbLAiAxfqOVAZncr521ZC/pt7gJxZCy71OhIPvn4w20of45dA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.ef4a0c0d.0_1623786747202_0.35463762955052647"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.573d8913.0":{"name":"@material/mwc-list","version":"0.22.0-canary.573d8913.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.f705e8048.0","@material/dom":"=12.0.0-canary.f705e8048.0","@material/list":"=12.0.0-canary.f705e8048.0","@material/mwc-base":"0.22.0-canary.573d8913.0","@material/mwc-checkbox":"0.22.0-canary.573d8913.0","@material/mwc-radio":"0.22.0-canary.573d8913.0","@material/mwc-ripple":"0.22.0-canary.573d8913.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.f705e8048.0","@material/feature-targeting":"=12.0.0-canary.f705e8048.0","@material/mwc-icon":"0.22.0-canary.573d8913.0","@material/mwc-menu":"0.22.0-canary.573d8913.0","@material/ripple":"=12.0.0-canary.f705e8048.0","@material/rtl":"=12.0.0-canary.f705e8048.0","@material/theme":"=12.0.0-canary.f705e8048.0","@material/typography":"=12.0.0-canary.f705e8048.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"13a9b9717491f67b5f5a219b279328890c0c951b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13a9b9717491f67b5f5a219b279328890c0c951b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.573d8913.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-IVw/rEy/jTNKbv4JwuDzyatrXtkKzA2nRn0sjrZNtu9pMZBQCiBZlvUQUtZnXduLOg4uGhQ8l434TfAuulPrAQ==","shasum":"bc395d3290ddafb499fb5f4ae4dc9e1f1e41d10d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.573d8913.0.tgz","fileCount":45,"unpackedSize":230004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgzSvVCRA9TVsSAnZWagAADmgQAJIQ4ADanC2R7mElwoeU\nu4OIS69g+tRRPXeatn0p5h/ajYdzG9KcDqR0QzsOQW/QygUDLpSP5s5XT0xJ\nb5d4/kOg/p0jdJ3AGeCFsfGsfinEaJDuIWAKQKF5JwmO1DEt4Iniczdb+NyK\nO4ghldTINc6VhHCF/DyHO+NAnoy9e8ToGJBgixi9kB15RfoM9Ow8I+vwrXs5\nsgJ+S4uPMqotryIPf+WJjDCXleFmcgQVqs8r47ceGDVb53Ius4OhI+WdLOFU\nSbZX3JN2yUOijgUSihTvdrGeIkujRCwqqC8QHRQ6vLRBcE4QoW9UZ7H5izYI\nwqkVqqGk9uo0PJc7jIKwugUYcKvI7s+ISLUE+XFZZiS2hQ7QPaAqQCmP6Mca\n3DuB9NVRD2IcEcR2FcfVFYy0qnt+zYlTicmcVERTr5gXxYaeQ0oqinVRDfrw\nV3WzG1P3d09jij+ZwYNUQ17UwxnYdEzfIEFU3EjO8gNX+Et48C8Vkve1SC9z\nr20oxJvLBIEsu/yVi+YT2sItCFDso5jDNPWyM0NTvUk2olBPxywpFEoey4jb\nQw3GC5BfvcuKsmKA+XQY1CEL10asI92aEgIDXel+spCztve2/sV9mnQn4C2v\nPnxNzxc3/svIFBipS38IONFtZ1HlNnLnmD5M7WL6a6Jrg02Kp4y2gDl/QsK9\nEssk\r\n=c1Li\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAFbC/+rQ7SNgasTx9U+tpx45vxlNiN9Ij6iLAJ+T03jAiBclYARlUGEVwRJpO/72389iJ8rkB+590q5rVVLKwA3qw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.573d8913.0_1624058837226_0.4581696998427882"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.21dba001.0":{"name":"@material/mwc-list","version":"0.22.0-canary.21dba001.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.f705e8048.0","@material/dom":"=12.0.0-canary.f705e8048.0","@material/list":"=12.0.0-canary.f705e8048.0","@material/mwc-base":"0.22.0-canary.21dba001.0","@material/mwc-checkbox":"0.22.0-canary.21dba001.0","@material/mwc-radio":"0.22.0-canary.21dba001.0","@material/mwc-ripple":"0.22.0-canary.21dba001.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.f705e8048.0","@material/feature-targeting":"=12.0.0-canary.f705e8048.0","@material/mwc-icon":"0.22.0-canary.21dba001.0","@material/mwc-menu":"0.22.0-canary.21dba001.0","@material/ripple":"=12.0.0-canary.f705e8048.0","@material/rtl":"=12.0.0-canary.f705e8048.0","@material/theme":"=12.0.0-canary.f705e8048.0","@material/typography":"=12.0.0-canary.f705e8048.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"f26ab3eb589dc34a464186e9b323c9a9bd20fade","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f26ab3eb589dc34a464186e9b323c9a9bd20fade/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.21dba001.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-DIJOGwbfq4TRXBhvDAtfbM7NyIeUpzmrETvbzsxETfWJQCqm6k5YsrUZTv8jE8RctQwiMZqzAS2ia3u8Rps14w==","shasum":"a0b85da408e2708f023841423bd73bb6e865734c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.21dba001.0.tgz","fileCount":45,"unpackedSize":230004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg0Qd1CRA9TVsSAnZWagAA+r8P/iIyimny40M6/zZCvywy\nslGREo6ofYRGh1homlWWynTA/FSfoSrmlurVfl3wIduqfsrO2O+qFilYSRNP\nY7W8YMZO0Q1ZEhXxzAjQBWm6s0bq+n9H3DJrz+74xH/j3zhONIp9UjqWILVu\nptDLPZtLO2dB2Xj8AQ7LAZHYaF2zHRIKxFfygCDqoEfLa+3QsSI6cKzZBIDM\nu/kN2QVZFHAIs7kanf7jdUlMyC4l/vePf3ftyBJowcKOcDAGApitbGaRCjPH\nbv+abUmFaqIps30c00rISv40C4qv71AofuRhHT8kQpM71iWm0jj57afdn2VO\nlmEROL21gujjxXBDmQxYG9F1v6lBJB+fMRMSuxVbrE3GH/pYvPAw3nH8DNVf\n9TJS/X0+9xJS7dnOZMtY4nZQaDIZhQr4bCljR0IME/PVCPqTOIgAFnIGg/nS\nOlvKQktumYLFJTVemhVd5uIbdfPhs/g6lcVm9uesISLpFEpUmWb50OJrmNTs\nMNOuZHnFQuR8tKZzDM/PQnir2w/9M/+kQWzFGt5532Gup31xALqpiw08HLsr\njeRsoJ8iJIS9dvOPfvxO9XV2Yo1zJzHcROxpyjIn+YoRuLFKcU5p7xInuHSf\nwKavYIOiWldFNqO4qgGRYrTdIy7Z0/ZhzEu/8OKtNGVTsku+ZfVE7xTPV/BS\nSQp/\r\n=NOhY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC0qSX5BSjNteJgmTldd2Qn+DfjTrNi1XdafrfBKOTSfAIhAOiRsakfXW32SRTqok4Mr/5g+M5zsL1Vwgr/hu79A8WF"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.21dba001.0_1624311668573_0.8755049603872036"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.6f5bfd0f.0":{"name":"@material/mwc-list","version":"0.22.0-canary.6f5bfd0f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4ccd39bdd.0","@material/dom":"=12.0.0-canary.4ccd39bdd.0","@material/list":"=12.0.0-canary.4ccd39bdd.0","@material/mwc-base":"0.22.0-canary.6f5bfd0f.0","@material/mwc-checkbox":"0.22.0-canary.6f5bfd0f.0","@material/mwc-radio":"0.22.0-canary.6f5bfd0f.0","@material/mwc-ripple":"0.22.0-canary.6f5bfd0f.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4ccd39bdd.0","@material/feature-targeting":"=12.0.0-canary.4ccd39bdd.0","@material/mwc-icon":"0.22.0-canary.6f5bfd0f.0","@material/mwc-menu":"0.22.0-canary.6f5bfd0f.0","@material/ripple":"=12.0.0-canary.4ccd39bdd.0","@material/rtl":"=12.0.0-canary.4ccd39bdd.0","@material/theme":"=12.0.0-canary.4ccd39bdd.0","@material/typography":"=12.0.0-canary.4ccd39bdd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"38e391cc489598145e8956cdbc0a234563260efe","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/38e391cc489598145e8956cdbc0a234563260efe/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.6f5bfd0f.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-qR1da6JZGsEqSW5h22mKAqQMbRfDudhwzE+SqQBlHFz4RbybNnYkUAN+DQWbcjt7H6mxZ1w5iMMxfScDluKm+g==","shasum":"b389592023ce7a473f0f00acdd9947a9f8758a39","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.6f5bfd0f.0.tgz","fileCount":45,"unpackedSize":230004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1Q2kCRA9TVsSAnZWagAA0FMP/3Ae9wcK+MW+oIhtMV02\nhEzLAFpPD4eT1PrrC4qRw1qvlt+EgRyv3xAMU52dFWp/XJ5Xauor0yCrPdTj\noLkF/ch6rgufshlJL7IwP7iGDLgmd9HLOjFstRwfKdVfMdBfkGAxP1DpnmUS\nHndO9Uui0y8rUYme1hJ25RhZW3nVvZqBqTRHiH0I9p1UifEeNcswirDAWrhO\nz+5CkpWL/79cDhPGnxVR6/bYQi73F8kc+m9UdVVRnR8Ccpzqhc+eINToCsSR\nzptWIiVjPmBi4Kceu13K1UC9bj6Ta6bqvms6W9TiehVNX28Dbi0K7XSxG7BD\nc33OnqLOgvF7nSyWEUZ3ohlM9FNJdt7RPK50/swwKe+IQDFwrJ3LUr8OtX8u\neNgck3t1Ob7nSA75B/gMVdpWbBafDpXy74tn6aV/uXfJiTWzufYH5CgepAyY\nuUZ4LYprObIfXwRgjfJg5K77+sCAKUcNcShGMnk2hCfulP7iNEstD3nFylOg\n4FuB8fX/MYaAjYKa6nkI3c0R0CvwVfYUEADJ6W7661C8oxVvAnOG3YV2uaSf\nXz7z695sfnLT0M6wFXJITc9/4fNBaK9jwiirGS9X24aBFGQxPYQKeZO7xsEP\n89V/RoHMVi2+chcLgQXwOCHUXemQUen7mAezXjarWmUGnlCHb+2OXuWdee8O\nZh5F\r\n=skfb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDbN94yKT1WhvrG53wVwFBIA2bjJb+jKI4jFAProHMzCAiEAmFbhnF7DJZdpf25IUDnJOovMUqzdclgGBrf124vZ1Jc="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.6f5bfd0f.0_1624575395894_0.13412521066270022"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.fd8360b4.0":{"name":"@material/mwc-list","version":"0.22.0-canary.fd8360b4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4ccd39bdd.0","@material/dom":"=12.0.0-canary.4ccd39bdd.0","@material/list":"=12.0.0-canary.4ccd39bdd.0","@material/mwc-base":"0.22.0-canary.fd8360b4.0","@material/mwc-checkbox":"0.22.0-canary.fd8360b4.0","@material/mwc-radio":"0.22.0-canary.fd8360b4.0","@material/mwc-ripple":"0.22.0-canary.fd8360b4.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4ccd39bdd.0","@material/feature-targeting":"=12.0.0-canary.4ccd39bdd.0","@material/mwc-icon":"0.22.0-canary.fd8360b4.0","@material/mwc-menu":"0.22.0-canary.fd8360b4.0","@material/ripple":"=12.0.0-canary.4ccd39bdd.0","@material/rtl":"=12.0.0-canary.4ccd39bdd.0","@material/theme":"=12.0.0-canary.4ccd39bdd.0","@material/typography":"=12.0.0-canary.4ccd39bdd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"652b3840a450a965d0a571d3b055195dddebc8ca","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/652b3840a450a965d0a571d3b055195dddebc8ca/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.fd8360b4.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-vdWa+CpULePKGAjx7Vm7XYujXlaCeM+G+1oM5IMuQ2cFo4WIHGb/cAvZXv1McFEqqSTrjmXOxk7B12XyfKYppw==","shasum":"fedf4bb7d7955aeace3a31afae71aaa86984a2d7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.fd8360b4.0.tgz","fileCount":45,"unpackedSize":230004,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1in1CRA9TVsSAnZWagAAyOEP/1OgDRoJn1SaBFq0/y8A\nsMOdZP+TIoHDlzGcYCqs+FyvYIuKUROCQQBnXDjLYxzUDK3r0z1zbVzu5BiX\nWaucjF+x2ZHyEUNkhteQ+bTzM2ljziPepgrzfHZVCCIEDcOfLml7XJWOBOOQ\nqLsB/2R1sPe07UWB0fcxAqajxKu5Rd51AyRa6gF65sbjJ9rwvt3X9L6aXc7H\nEPWAzQJdWEP9gJNVKByx0O2L5N/2BkTnnqWnh4x8oEx8sPSkfolccbpmleD/\nzUs+rOcGCGQ8FgZWwOsTTfZKkcQdR7tW3VEXqK494WoxMMtORfxTw1OQUG8n\nkfypywtxS9abCTZQ0wM63t/F21JAGLREa13T/VHYluSzQniWrdFP/PgBsjeQ\ncTtsgkt4gbnzpCsTTtxBJoV9IFuDycO1nNrOsY98Ht4k8CIgxcfnwhSK8Gdb\nLfxMP1nRRKrl9VWt8r1XLE0oCezxuu7xLabNbTTJG7yCxouQTWCptVPDSmDL\nxKsJc41EjSeJAyrntLd8eTxxn7kgi43xzfwnzZhKFWlX7c0Bht7gFkOdn50u\nNBDmNxmYx0v7g/0lsC+s+nRVm6guyHWIYIeVCiyQWlLwGyQ201X4jemlkSwO\nXnPP8nQPPvPYa5EUB5OniELPk/YG6lD05JMazDW+/t51awSpVV88cYt1wLC2\n/jQN\r\n=IV0D\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHSxdVn/Od4effgJFNW1vllpVKM2pgb403rgubIqtoWDAiEA0gKtMJC6ZxmzxVTn/MG3IDLV9cClzeA0B6aStaHipu0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.fd8360b4.0_1624648181075_0.91059827336943"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.6f74432f.0":{"name":"@material/mwc-list","version":"0.22.0-canary.6f74432f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4ccd39bdd.0","@material/dom":"=12.0.0-canary.4ccd39bdd.0","@material/list":"=12.0.0-canary.4ccd39bdd.0","@material/mwc-base":"0.22.0-canary.6f74432f.0","@material/mwc-checkbox":"0.22.0-canary.6f74432f.0","@material/mwc-radio":"0.22.0-canary.6f74432f.0","@material/mwc-ripple":"0.22.0-canary.6f74432f.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4ccd39bdd.0","@material/feature-targeting":"=12.0.0-canary.4ccd39bdd.0","@material/mwc-icon":"0.22.0-canary.6f74432f.0","@material/mwc-menu":"0.22.0-canary.6f74432f.0","@material/ripple":"=12.0.0-canary.4ccd39bdd.0","@material/rtl":"=12.0.0-canary.4ccd39bdd.0","@material/theme":"=12.0.0-canary.4ccd39bdd.0","@material/typography":"=12.0.0-canary.4ccd39bdd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"c9a217708497c2e16eaef6de3d1cd70873d0173f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c9a217708497c2e16eaef6de3d1cd70873d0173f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.6f74432f.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-Nb2yBeg17UMiq0wrHwqyuGwYNM2tOIR9ntwLl8aV9pG6WipL8FMNwk69a/VUObitV8JIPJdwh3proiPIrf19ow==","shasum":"b8170e71f07097556bde2807746981ded724ddf9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.6f74432f.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1kDlCRA9TVsSAnZWagAAiyAP/iHAD1v4sj4uE3j7B2ky\n3O8HggZGFWf88cXpJjSwuvNP5nhxZVdH0gOy5cfA0LBLGbMsUdvePp8OLLiM\n+XBlx+x5JqO1YQ0IIduoHBqLwtj8rcsCy+EdoNYfN/+bHLYBkSBXzVrWp8De\nWmzrB+gx8zGtVGVh0xqjGD8gaPbSyLALRjhIlDchhDb3ptiVX07ji0eD6k2z\nVI1P7thRSoCRriOKLr0/ocH5YojnDLx9unxttlU113D81WBXoVFvg9EQu/ip\nfHgbG13wZFcMkavW0EH7DPzqyaPKpoWJzp0ZhyUkZPAvUriwhVyxeE/774aw\nCGp3I5E3jBfW2KI+CxEZUAZu5T7+GgwOfRwpO0ymN6Lm61/yL+552VmtmJla\n/ClkFYm6id1dsu7t+aHWsbS2JOxqMMlkgGqR6tZg5hcKXikWYExriXIEOdEZ\nK8qrmjsEV04oYkF3K9g05vnhVTz0rRnrgf4IVQmLSe4gFdUK+UI67X/YkTY1\ny2W6oxv25uZi3yRyPlEWZ+bd4DiEiP9YC0WSqy1hL0mRyP+qLOVafqVw7kmP\n5+ECbq/YJzxrbu07Q5j/p3yudDXd+mqZQLdfKTjJv5N2nR6TczlPyo1nO/37\n/wIzvZ4ufqmtFkMHAPYr7jkDqin8O7F7ffrlRB01GGcBbLfPydqKf4VqxCwh\n97Ok\r\n=ub/a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDMv2liDxMoFTK5mj+fqN7xaahf99mCWes0hT4W8oLObAIhAPu5CTphLkq/2nKv53A/QWve3gYPGgHvkv59hH9JRBKZ"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.6f74432f.0_1624654053145_0.503732691056394"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.b62f901d.0":{"name":"@material/mwc-list","version":"0.22.0-canary.b62f901d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4ccd39bdd.0","@material/dom":"=12.0.0-canary.4ccd39bdd.0","@material/list":"=12.0.0-canary.4ccd39bdd.0","@material/mwc-base":"0.22.0-canary.b62f901d.0","@material/mwc-checkbox":"0.22.0-canary.b62f901d.0","@material/mwc-radio":"0.22.0-canary.b62f901d.0","@material/mwc-ripple":"0.22.0-canary.b62f901d.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4ccd39bdd.0","@material/feature-targeting":"=12.0.0-canary.4ccd39bdd.0","@material/mwc-icon":"0.22.0-canary.b62f901d.0","@material/mwc-menu":"0.22.0-canary.b62f901d.0","@material/ripple":"=12.0.0-canary.4ccd39bdd.0","@material/rtl":"=12.0.0-canary.4ccd39bdd.0","@material/theme":"=12.0.0-canary.4ccd39bdd.0","@material/typography":"=12.0.0-canary.4ccd39bdd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"05d3042d6ee960a41512f4385bd22af7dad2331f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05d3042d6ee960a41512f4385bd22af7dad2331f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.b62f901d.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-3oKY2bUFx/0aVvN9CfAjylUOJ6HqXZ1G7mMuV+zqW7ShNdPkwUF2yA9UP+UhKKnG3XEeVs78BwOkw46GH+I/WQ==","shasum":"f3d6b93d399a40826850b2eac84d3716812c2fb5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.b62f901d.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg1lYOCRA9TVsSAnZWagAAjfIP/AoM84o/dlVJ1gOJE3Br\nSXzLTJGJgo1IRbZNuFXqacdNZaLtITUytICOiGNgfbdROnIummfbCWQNCIes\nYjXEfSQCJFW52n0XAdjwx3x5typKC/BGeOMGAA2TN+Fhph3My/U/HiPEje4E\n+buWFkbnnQgHLOFgvMMBWxZPnJlecAex+tQatTintZ7zLMWnGgDPo5j/XZ8J\npghWu1JBziVZzNrWaXk/H7x4iCQl8gj1eCL07YZ3OCHLUEabcrd4TwZrMPIn\nNk+JgB5yKhfd76o/O8oalPoqDB4jneVQz7UV1ZwnJBhBeB7IgXpvUL45FruB\neSJlNwhnJCpYf9nQY8Yujjcb4kYFV47z7xn769UkEO3gaOp79N32rjo/Rxm9\n86tC6dBXaQgLGx0brUnSusYgXrBrMKUEr1tOV5yrRAlsH/XON5wStcA51m++\nj9JL9agpk1mjmmGQjQpNRbaqZtQ8jd8lsgaX2e7VyZt+4Gxfu7IBgyMzLPFw\nNO8mkolX0L8uimBERVpCPNd5oija0wTgK78F5Ts59o36ZU9Zhov75ioBgAQi\nBa1cK8ngJ1Tgc5jdYb56ABNUSMl9fFWxAMA81bo4JrxqkJA12R5TuwMbduCE\nW7GbGNYpoBx+wb7GwSG41a3NbYAZZ8btlIfEgZgkqHCjaAt7rtHDS77qfoi4\nsAEa\r\n=cwCc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEWSebo+oMsF+WDiPS9vk0kxuzQS3OpEJUUlZ5CPJMAPAiBqOx3kiQAf03t2cIdSLsfifddiB2h8PEfovH5eGM+3jA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.b62f901d.0_1624659469953_0.05291264034894305"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.73122cba.0":{"name":"@material/mwc-list","version":"0.22.0-canary.73122cba.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4c80072fd.0","@material/dom":"=12.0.0-canary.4c80072fd.0","@material/list":"=12.0.0-canary.4c80072fd.0","@material/mwc-base":"0.22.0-canary.73122cba.0","@material/mwc-checkbox":"0.22.0-canary.73122cba.0","@material/mwc-radio":"0.22.0-canary.73122cba.0","@material/mwc-ripple":"0.22.0-canary.73122cba.0","lit-element":"^2.5.0","lit-html":"^1.4.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4c80072fd.0","@material/feature-targeting":"=12.0.0-canary.4c80072fd.0","@material/mwc-icon":"0.22.0-canary.73122cba.0","@material/mwc-menu":"0.22.0-canary.73122cba.0","@material/ripple":"=12.0.0-canary.4c80072fd.0","@material/rtl":"=12.0.0-canary.4c80072fd.0","@material/theme":"=12.0.0-canary.4c80072fd.0","@material/typography":"=12.0.0-canary.4c80072fd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c6a144cd9623c2a8e58dd87af0807c1aa4d1f5e9/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.73122cba.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-ssf9pYHaIoU9jUFouhWinvlwn5BD+9h/Hg5kZryAqTyN3z9+nfNeF4pU/MD3ZmC2efr+9wCcU4cwI+xN8ndYsA==","shasum":"5fe2f828fb829bfab485ace0803ca5ddcc6d4d91","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.73122cba.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3MfxCRA9TVsSAnZWagAANcUP/iiQS2W2iRSR9GLcJxhQ\njNJ0CsD/MIGfgvIbV1Iop8b7WHbAtolo3MX6uZOMslBEf9G90FLe4ZvtmPIY\n9t/gQ+QNsig3Ue2myMjBYSOr2jP8AemcCVyXuoRdGKsGCuLIWxJxEA5H9L07\nY9PFy0SC0N8NoQyG5ncKR+uSAqfQ9t332OquSwTbGGdPfbcHjJQLaOuHx7yK\ngFrEF0zd+gB/CQRYTKzqqbdN6tQMql8eSsBy5Vqp4OaC32fblKdZ0OWoh7+M\nVgWx5Rdul37DbdAqhvx+c784op+QaCL0EX1w1Y7Mr1u1qDl+bZa22A6xXL+m\njuB2md+11QqXgDRvv4Z3QdT8fDKkXBaN4kTSQtH2XZEM4k29j9M+VaQ6n6VX\n9qsDGJMN3ckmP8TJ+5DZt8e+KcjWMDQ8+ZZHs5RXgzxR+LtTq8RT10iPiKLL\nTJWoY4pqtfKBW7ipyYFuqZRt90+WZ5/eIAi/Duh/Q5ONUV4NcEij9cTiMuKF\nEmqygXy3qKvIVSmgVuaHB7xgZ8Pp+0bKBOz4+AUQRcSNXBFpuleqzG7DItbA\nri+qY5ItZRYCilOkP0Vym3KalCfR1AGd6mA81Ge69gRCSjI5/Svdzbqjt9IO\nQFEqsWCibX4hjqW1UKlSW5+Gdd2FCfXTxaSXGsRITFi64lsw4sh4tYtY8T5t\nu5lU\r\n=PazI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDlMdtwJ+OVReAlCei6ldlpvngsiUV4tU5ok/zo7ksBSQIgd8PdbQHMvQK/6k9UCwWg4XTWjIYz1R0ISNMEHA6Dj+0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.73122cba.0_1625081840655_0.534742986215083"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.a6912af5.0":{"name":"@material/mwc-list","version":"0.22.0-canary.a6912af5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4c80072fd.0","@material/dom":"=12.0.0-canary.4c80072fd.0","@material/list":"=12.0.0-canary.4c80072fd.0","@material/mwc-base":"0.22.0-canary.a6912af5.0","@material/mwc-checkbox":"0.22.0-canary.a6912af5.0","@material/mwc-radio":"0.22.0-canary.a6912af5.0","@material/mwc-ripple":"0.22.0-canary.a6912af5.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4c80072fd.0","@material/feature-targeting":"=12.0.0-canary.4c80072fd.0","@material/mwc-icon":"0.22.0-canary.a6912af5.0","@material/mwc-menu":"0.22.0-canary.a6912af5.0","@material/ripple":"=12.0.0-canary.4c80072fd.0","@material/rtl":"=12.0.0-canary.4c80072fd.0","@material/theme":"=12.0.0-canary.4c80072fd.0","@material/typography":"=12.0.0-canary.4c80072fd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b34c74a66bc7e54e1165edb13005a2923702f9e8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34c74a66bc7e54e1165edb13005a2923702f9e8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.a6912af5.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-yA0S0S2zU5mvjH50l1Bk1cFMd1vq3oYHHpOZ7LF6MXlG6WuUGIkRGahs390dQY7PG1cRL0GNbvpEjh6bA9EJHQ==","shasum":"e029a6aa8f0966fbb10b366055ffc49cfabd7870","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.a6912af5.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3jTtCRA9TVsSAnZWagAAi4wP/3FirRTLR9uBLZoEHPF4\n/l/Glxj7yd9/3sP1XdCDz4qrxB5ioDSOeEt5k7rFfAPZVwrtp5TasWoKjsJ1\nPslsVnRPHLzSz5oM7marAksyvNlumDdDzrkUjF4tpx/SlRAEkuMdowOjYYzd\netfX2wxEYa8aomjFueVl5zEkTQWw2cy95dPlp/N8WN99195WeOkxjigdsjys\n1Wh6mfgnUlU7g6jyk6W+4QyXyqbBldCOAcqB3C7Z9AQx+D8zDxHGDv9rbEb7\nWq2K0yHtKz3scsPxSjTj8q7Zz39RDqRVD8j6AKm3WMc3sks9nZONS5j1t6cz\nmzWUCD35tgjVnq0QwDCx3ow8sTp8dcbEf1AYJZ0FAoTl1p4D2uxexQmZ6OG+\nJuNLGvD5WUT0s39InuNN1jvVMwkPdGFAgYuhNqMu8GBwiCOs79zI41ayEuXJ\n0eYSZJwq0g/9nyZOlN1CxDEopf5/zvfJKEUxss6+/fL8e34QgeF06kPP+VdX\nN7ySivRvzPVEUpkpDYQyur4PwZm26K3MOl9LWy/RNTMlXicOXLM4aX+kViZL\n8QZF5rPfNWSasLIcAmOaQSKmbCz7d7Nm+g8sdnfhwovza/FxruvMwEchn+O/\nNjCoX78Z1RuKVVl8TVINT8qjFSebNWugOWKROXCjtC2wUUsxntitJfKn6AHk\no9Cp\r\n=bF9B\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAX0w7L0z2zwj/U4gZBQM42OuwFFlZkHqwXzoIhLdWJ+AiAJ9dXwx2OVeg2/BUx8u9XDVl/Vig4W8DZe6G45+X4Jaw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.a6912af5.0_1625175276704_0.7639076953735005"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.134f24bf.0":{"name":"@material/mwc-list","version":"0.22.0-canary.134f24bf.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4c80072fd.0","@material/dom":"=12.0.0-canary.4c80072fd.0","@material/list":"=12.0.0-canary.4c80072fd.0","@material/mwc-base":"0.22.0-canary.134f24bf.0","@material/mwc-checkbox":"0.22.0-canary.134f24bf.0","@material/mwc-radio":"0.22.0-canary.134f24bf.0","@material/mwc-ripple":"0.22.0-canary.134f24bf.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4c80072fd.0","@material/feature-targeting":"=12.0.0-canary.4c80072fd.0","@material/mwc-icon":"0.22.0-canary.134f24bf.0","@material/mwc-menu":"0.22.0-canary.134f24bf.0","@material/ripple":"=12.0.0-canary.4c80072fd.0","@material/rtl":"=12.0.0-canary.4c80072fd.0","@material/theme":"=12.0.0-canary.4c80072fd.0","@material/typography":"=12.0.0-canary.4c80072fd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"1191b29dc7fa661811a1c3960131fce8394fc84e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1191b29dc7fa661811a1c3960131fce8394fc84e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.134f24bf.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-rlAeC3v/uGA7DWeGkr1YKbK2HpvR/x2VYSJoRyNd1xUX9NwFGj9Dwsg16VYb7RbV3KIgU8B5CYNMJdUV9DQRng==","shasum":"9992da5d7d0f7c4bce31dec4e083b49c3e2c7f75","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.134f24bf.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg3kKWCRA9TVsSAnZWagAAO7cP/2N+noSkkt2G4vtyU4Ln\nM5sRZ0bvi+T3QGjDzArHUX5JQ/E32Dlmo7zx+ip5rGFvRSS2d+99Vn2b43dG\nP1kZ3oFX804hhk+kqZCAvsoN/dbK1/5FjDvwNKMaNsJO7MdZU5PhNlPHIf92\n/HssCoKp2dhJio8jt5glNjy6ZKePO4uTXEi/shYdGvkCWjMdrvmBmJ+DK7NQ\n77q90Bh5X2U8MkizP8rSrpFspI338QwRQs9xwNCPxS/hnuME3EA9913MzCaw\nPblXiLAALU3eXV37V7SdZPzW5koC8H/3y4qQtXySrqrpOXrkaBNB3sRpo2FG\nca8o2dFsPn+chVrWBxK+B3bQi6Thn/5069cTfc5iLWweSZKJQ89249hf05gA\n0YtcKlwJLh/WMato/PmPKsW/zkNOfwoWlKya1E+DgIq6hfvWpjCaCgQZWSlx\nFraioDfMiOO+rrVp/WvOAbvy0H4k14huVPA4Y36WSkcY8VcMWbZ5AWAbN2ba\nssKoT7sNtvxktfh56hLxOkHaWSgUOUjkTQKI3Ltj6DampoRuzR8vyTcxPJTi\n87gCw+SK4qokv+/6Tuq8Gk3V3CuCz75SJYo3GIn/jNWf8Mf0Yj9a7uvFD7HE\nmJxO1HHHwNdPzaEODLh2yiwEUF/IjQqvJ9IrAU2Q8xMxviNDzYkynmmLtv8N\nrdcD\r\n=LUw/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDGDGEqjW1CQ13bkyYJ2gM6x7w/cnNok22177037PQ7wIhALqyCw5bVZdh1nC2vowBO5/AS7Ei2UZQ73Eoi5VLPnCS"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.134f24bf.0_1625178773556_0.22859537868454205"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.1debb78f.0":{"name":"@material/mwc-list","version":"0.22.0-canary.1debb78f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.d0f9f3f2e.0","@material/dom":"=12.0.0-canary.d0f9f3f2e.0","@material/list":"=12.0.0-canary.d0f9f3f2e.0","@material/mwc-base":"0.22.0-canary.1debb78f.0","@material/mwc-checkbox":"0.22.0-canary.1debb78f.0","@material/mwc-radio":"0.22.0-canary.1debb78f.0","@material/mwc-ripple":"0.22.0-canary.1debb78f.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.d0f9f3f2e.0","@material/feature-targeting":"=12.0.0-canary.d0f9f3f2e.0","@material/mwc-icon":"0.22.0-canary.1debb78f.0","@material/mwc-menu":"0.22.0-canary.1debb78f.0","@material/ripple":"=12.0.0-canary.d0f9f3f2e.0","@material/rtl":"=12.0.0-canary.d0f9f3f2e.0","@material/theme":"=12.0.0-canary.d0f9f3f2e.0","@material/typography":"=12.0.0-canary.d0f9f3f2e.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"05e5511ca831a84c47e7bd43f685202e9213b33e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/05e5511ca831a84c47e7bd43f685202e9213b33e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.1debb78f.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-s8uLy9ICv60ztXpXNcMx4wp/lcuPs9zaOwvPoJoNaP00lYcUszW7+O97d1lpy/tB7di0sBu5QiRIy1BivML0nw==","shasum":"772236cb7b99b88c46d337039019f564b52e5bbc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.1debb78f.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5PmCCRA9TVsSAnZWagAAXKcP/R6hi09w9zgzDtQC252e\nbYqdNTonKgcfxC+pq+IfkfTLF+a+2Vw417xVBdqeJ9bGfCKEyKF06+C0Iu6M\ndV/Q3sNceWI2AvsFjjBNOEGe9qDw3o5p6/o3Sn1MQZH6ee+FqY68nb/iiG4P\nxT/VSIsNKTaS0SKGrtAIX89H63z5efp7DfEhUhQeJ0l6lElrFrcXlcbVrTY4\n8WFzpIWdn5zk/8zjF8xnB/EVJEjBZ5ha40xJQvJ+8QdqoQgdwk/7EHO9yXXd\nCGv7aTrcaG4UNm0VFnjKcxvaqIJzwHe+AgiQqfYaFAerIeMaseZU56T6lK2a\nhcsTFMvfX5TcMxg4RBKPTVezFedAdadyiGYHlAtXCI+4ZUdU71eoTP2EoG5E\nb5cdkHCdbWCWTv0TbIDnulyaWiJhj8dycBxnPXbAJ8qno1pHzOD8MFZ0lAXd\nqMGJOFDT8JBSkzdKXqzgtbkDhUmqEJTXFQ2uuYK1u6lqV5x9Iq4aMW+HwVlQ\n5x7pwPZl+mv2V1894gx4d93/byzCePfSCw8O6Q7dcSNamRYUOX3cgANLXyJr\nYneHuHXgf7UWRsRrLI46ipGDR6A+IltVZ7oPoeNj7K/NcRQXTYpuCvuyIHel\nBntMagmoaldQLLxcQz5EXYQEAPVtwfL4ov+/qvpSSe1DvzMokucd+YdLs15A\nY6ra\r\n=98Vq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJDZlgvgvnaLVHiExxzzXTBXjP7tOeevLK5kKyYvQvEQIhAKN0ixXEIjeur5/H62eF1fv2AGW6mPvLIPUfg/P9AyNq"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.1debb78f.0_1625618818197_0.696277090637611"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.d53edeb6.0":{"name":"@material/mwc-list","version":"0.22.0-canary.d53edeb6.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.d0f9f3f2e.0","@material/dom":"=12.0.0-canary.d0f9f3f2e.0","@material/list":"=12.0.0-canary.d0f9f3f2e.0","@material/mwc-base":"0.22.0-canary.d53edeb6.0","@material/mwc-checkbox":"0.22.0-canary.d53edeb6.0","@material/mwc-radio":"0.22.0-canary.d53edeb6.0","@material/mwc-ripple":"0.22.0-canary.d53edeb6.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.d0f9f3f2e.0","@material/feature-targeting":"=12.0.0-canary.d0f9f3f2e.0","@material/mwc-icon":"0.22.0-canary.d53edeb6.0","@material/mwc-menu":"0.22.0-canary.d53edeb6.0","@material/ripple":"=12.0.0-canary.d0f9f3f2e.0","@material/rtl":"=12.0.0-canary.d0f9f3f2e.0","@material/theme":"=12.0.0-canary.d0f9f3f2e.0","@material/typography":"=12.0.0-canary.d0f9f3f2e.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"becc7820ecd046cb48666a32a633b8d9f76f2980","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/becc7820ecd046cb48666a32a633b8d9f76f2980/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.d53edeb6.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-4FQxetsAwohDEnQK7aBmpLVUJY45iJH+FUDAP2xx4pgwuOcxqs3zvrkmdyz5Upn3los/bq065/TqPshcrD77AA==","shasum":"953816c0b19e126180e0dc7ca2f89a15aee208f5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.d53edeb6.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5d3CCRA9TVsSAnZWagAAMg8P/33RjLLXfV6nrV29EnCO\nQ+F8M2ArBHL8bY6BKh62IYIkKD0PPfClTJLTxS2lqNyk9o1jxAuHgyR5zavD\n4Yd3yko7d9Q0aV8OK6QdyIxbjXqrfSXY9PSVp9oOI/6wTNWFFB7MSQSdXXDY\n9qLOsBHGMrELgMuqfTeR4hYAH7cXMu+RTvRE0DQVZDBo+Ju0g8FqgaTNwvqI\nkL8KGSvFBM+IzM5wB2c2ZwsilHem5fPZLmAIGqCZ+231R0DqP8FfBwzkInQr\nVcIvEaqztX2OMpnq0jmyx73fyG3tkrcnP8AkFvrWEFZUkqatZE8lTH4QKh+k\nBwFAk4PKMMr2Yi6XXV8GNo6qzR3kvtrf8QSRWqRA3n7V11oJ71RRBU21dJsZ\ny0FtfYAAQUL77CGdCBDSQLXg39iskxT2Th4M4iKIR/NCjc7IaFx3mE0FUcyq\n/8H1wUxtepOUHevGJbhy/0IqaMWgE1FzSwo0TvGhCMAIslTho9TUFpV0IpQW\nqtSnhPuaEnlg9PNbghjjDuEZDGDzN93QW9hInvRvhqG/p8UgwLeIM0iba21W\n71kzHdQTZln65ZcHmUtMOQXPg7vdzeheVHa/kkm+rhU8yy/QxuZVpT8o5zk2\n2EVsgIxlP3IOo90zYTzhiO7N+hKdIJFQE21kIaePE8bUJzgrJXw7GLsmd8md\nuzJ3\r\n=cY0Y\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDAlKVbjvDyw6TtAQsEA0osuJ9L9p3/zXb3j4SmqZaGYAiBvKNpdlhi2jZ43zjbOKmQbiPVfO1hFNvGTQDUxHtyuOA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.d53edeb6.0_1625677249951_0.5349278095510328"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.2226489a.0":{"name":"@material/mwc-list","version":"0.22.0-canary.2226489a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.d0f9f3f2e.0","@material/dom":"=12.0.0-canary.d0f9f3f2e.0","@material/list":"=12.0.0-canary.d0f9f3f2e.0","@material/mwc-base":"0.22.0-canary.2226489a.0","@material/mwc-checkbox":"0.22.0-canary.2226489a.0","@material/mwc-radio":"0.22.0-canary.2226489a.0","@material/mwc-ripple":"0.22.0-canary.2226489a.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.d0f9f3f2e.0","@material/feature-targeting":"=12.0.0-canary.d0f9f3f2e.0","@material/mwc-icon":"0.22.0-canary.2226489a.0","@material/mwc-menu":"0.22.0-canary.2226489a.0","@material/ripple":"=12.0.0-canary.d0f9f3f2e.0","@material/rtl":"=12.0.0-canary.d0f9f3f2e.0","@material/theme":"=12.0.0-canary.d0f9f3f2e.0","@material/typography":"=12.0.0-canary.d0f9f3f2e.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"4ac660ba00e610510de0d1b8c86d4095110ac230","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4ac660ba00e610510de0d1b8c86d4095110ac230/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.2226489a.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-W+Age2U1hh0Ddh5TgBNqOXFbytbewBOZUQhxLru6jlWO5agyimDvDeyjXz7iYNxVWNJdJpEEpLuOpKObq6tS3g==","shasum":"8b708027ce254190301c30b9be7f795aa712a15a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.2226489a.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg5z2cCRA9TVsSAnZWagAAydwP/2kHijRXQ4R0XX7d7AQF\nK/dNHoudOLo8ejtazvdpjsEUGYguTCsnbAYnMcH2V0NY0gOUp6shZXxcbUgf\nCREQGtBVVJLq+JhSg5WiBswjP2XkGzv9BPXmou4cU4FwtGga8pjlPc1CUJ53\npVxTdJrbprhUfPj/50znfdF1t0WhTWlGw3qQaPEBXeXMZ3DjkVO9K7KfPfv4\nWHHceUkEHXxXXmv7s9XcGdrFWUrCZNBiVPgP6dwhcNHQXltKyKlzZwfyo1sQ\nHcT0G5yHGgfkuzoPQUBsuNEwaSLVD7f7Er0Vt4Dm172Y/nPywF0uQ+uZZe6d\nSDKEupwuNKlGzBxSSaK4QOrRgPjPJH9Hm+HVAWdLnjOgZZzMXlGFE86tnuHF\nbusm6Q1wc2I4agYnPQYG54YrJPW6YavtC59U4wedu6gOk54v7QODUjvzTRbF\nMkiEhIa8Rouk5asR8XV83hr0cWIAgWQFI/rH4JRl6SF1DeF3jSE/pisqeCBv\n3LYZ860YAg5L8xTd8GOG4NifR2mc+Ya/7QswitBrq0Um3qtvYj0hts+EGzHu\nlaq2UDLKRH83GkEK3MN+uebQDO0wHLWgMiCcL4s2oijaALZ6xstao4Q4//3G\n5X7WwKTDmxnTxAuaA/yo0vVJ0wR1za2qRWtzX1CkycY3ARWu/h6n3QwSg3So\nXtB1\r\n=/YRp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBq+p0xa3oSH/hNwbH4Xhf6ws+xFQxB7esSWsFSiNDNxAiBQN35+oSyxhtIy0OpKDh98SIwYFxmAdZuu9Hvm3U80tw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.2226489a.0_1625767323583_0.27524852326214067"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.d4801c11.0":{"name":"@material/mwc-list","version":"0.22.0-canary.d4801c11.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.adeac0549.0","@material/dom":"=12.0.0-canary.adeac0549.0","@material/list":"=12.0.0-canary.adeac0549.0","@material/mwc-base":"0.22.0-canary.d4801c11.0","@material/mwc-checkbox":"0.22.0-canary.d4801c11.0","@material/mwc-radio":"0.22.0-canary.d4801c11.0","@material/mwc-ripple":"0.22.0-canary.d4801c11.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.adeac0549.0","@material/feature-targeting":"=12.0.0-canary.adeac0549.0","@material/mwc-icon":"0.22.0-canary.d4801c11.0","@material/mwc-menu":"0.22.0-canary.d4801c11.0","@material/ripple":"=12.0.0-canary.adeac0549.0","@material/rtl":"=12.0.0-canary.adeac0549.0","@material/theme":"=12.0.0-canary.adeac0549.0","@material/typography":"=12.0.0-canary.adeac0549.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"2d6201005f2b928287b990b2ce5ca643ef37ce6e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2d6201005f2b928287b990b2ce5ca643ef37ce6e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.d4801c11.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-wlsf6/qCAmnm4JkvLS9U4yvN2EilVhVx8IyaoRvWrSm+hyauw6i3P8ciMjdDdjKmSGXNccxHbDeYYARFpPCjiw==","shasum":"7271acca369ee2c92d4c8e0d1794ee2e5530d3de","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.d4801c11.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg51oGCRA9TVsSAnZWagAAonQP/iW2kD3YOX7OQoBu3WJc\nGpxyj/dJnFM/lvYTzFo+UZsnP5aA85UfTAkSmpspb1twCN0dOrJDXtdC/wxR\nNMI8C2hJbJibkGtdRGkYMdoVd0MYGYX+6dIzAb90JFihU2jDNXPHuxJV8yMJ\n8JRhMAULJVmzIn0rZ1W0wwnMMGaYzhEI6CszuEOa/GbRWdJDYnOR3RIO8Ztf\nKar/uw4SpgvqLh6YyMdjwndO5gVgpcViPhppwBE4CZL/ECf4e6/kwui4ytkD\nnEarnhpRATEx2QbhmfL0cF42XuUCqno8RK5CvB2PhS73X3Xh74rMDHeg060U\nYHOiG+qa+wvls0WsGa7cueN2wQzVQo62s1UPxkQPxigI5HO0ptkU0TvL2ZVo\nOhEk6ckD5bu+YNWQ5biA54OGihIMt5dCuS3S07RQLm7b2tzIyEe0zk0r/If8\n1E+KlLAyTeyCdTEkISiUiYhNpfkgO69IKjSI41RKFoceEg74TEVwtSg6JvfL\nfh2Luvfe3f2dj3vYBbVFzIME6i9sdHR48od1TTTa8GYVH6cuP2GVCXAl5fWk\nijz+gxUNhJdgDflyz0oY4g87xf9UcPzawZGA5Jfg8Sbk+4EWArn5myrsn7f2\n6y1Wz1BmVtHRHhzYfVhVXhaL5luWmg6x3lRYHKo9e+VYLimiq1Ubc2Oimvjs\nIrIm\r\n=XhuW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID5FKrzBHZIGZ6FM4tOclt47FWD/retTZWXAJFVAlJqAAiEAhxbS6B68mzhGVxIwaRYtk6TMdXtk4JN/2t17u9Q5ZzE="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.d4801c11.0_1625774597731_0.5857861726661759"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.7ec5f2d6.0":{"name":"@material/mwc-list","version":"0.22.0-canary.7ec5f2d6.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.068fd5028.0","@material/dom":"=12.0.0-canary.068fd5028.0","@material/list":"=12.0.0-canary.068fd5028.0","@material/mwc-base":"0.22.0-canary.7ec5f2d6.0","@material/mwc-checkbox":"0.22.0-canary.7ec5f2d6.0","@material/mwc-radio":"0.22.0-canary.7ec5f2d6.0","@material/mwc-ripple":"0.22.0-canary.7ec5f2d6.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.068fd5028.0","@material/feature-targeting":"=12.0.0-canary.068fd5028.0","@material/mwc-icon":"0.22.0-canary.7ec5f2d6.0","@material/mwc-menu":"0.22.0-canary.7ec5f2d6.0","@material/ripple":"=12.0.0-canary.068fd5028.0","@material/rtl":"=12.0.0-canary.068fd5028.0","@material/theme":"=12.0.0-canary.068fd5028.0","@material/typography":"=12.0.0-canary.068fd5028.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"530ddb2b50487eae209a7b76d4233a5b591dc62f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/530ddb2b50487eae209a7b76d4233a5b591dc62f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.7ec5f2d6.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-EWgPxwsRiuSHX/B4+6lEUI7fCxhcZTdQVqMbWmfDZtkf2VXQ865d26yoVh09lH+d31zjKzWQ7KfbJFAkgSE4mA==","shasum":"ba148073c6467afd07683889e7f94fd83c3012e3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.7ec5f2d6.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7HkjCRA9TVsSAnZWagAAfmUP/ApfpqFcsIHjdjD9L8qH\nJlEnoAVgD1kHxwsSKT63kAK6jME3a4kpr1MJIFosMHZGNhm94AHe11JhGgN7\nLv/OgpaAM0t4aICg13hk7JfPJnbQelm/9CdcsvO5Arrr6f4QZQhbV/khztt4\nr7ev1SMDNMRGSXirGHqsl+RPVwKhsnzO0NrbRlHZYS9U8OayOFuQ5bawG5bi\nCKCztv/iIGS/asBijTzfsoMdvzbCnQGy14Jh1eJQ1vm5e3/CdwUGUiNc3RX7\nDa8LbkkmGzL/jMz9gLQs85pwmvHQTan01V7Q8sLGOo6NK2znKB6lnfLigiTV\ndFKWaX/iqneOqBez0+z3znFU++Cw7cI7UvQ+eyEe2psSgr4Whe76lSaPT3w/\nBnBzudtQ5STue6fVhwFJUtLVUsFP4Wbtyra9GgWFI3mb8N7FNChsZgaRZFuI\nUUuRybydwJoI6PIqyPTAuI0EX2f3jFKA8a1HJ1cHzZSjaatvPr+MgCRipNGd\nSTwMypgNHdp/IKAuSSZzG3r4H5naOWGX/u36idpsqJD/BfFakH4lZDRapuu+\nJD5mSMBbEeDxP7oHu/44Tgy/omPayi52EeUF8FQz0RUS6nsz1otpWBhtsmmi\ndrApClb/v/vdyrBqN3ES/Ue//hq+mTmk+rEUsh8sVG5TB6ppEna8nUwUZ4pL\n6fkQ\r\n=Gnju\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDTOg6Hk9kDntp+h20toL+vqBw7PFM48O8JisC7meMNKwIhALTVIscC6szQUBYFjVE9M3htBeA6guvXeXpMu8uYB8Ua"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.7ec5f2d6.0_1626110243384_0.3061923936957516"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.86cb4ca7.0":{"name":"@material/mwc-list","version":"0.22.0-canary.86cb4ca7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.068fd5028.0","@material/dom":"=12.0.0-canary.068fd5028.0","@material/list":"=12.0.0-canary.068fd5028.0","@material/mwc-base":"0.22.0-canary.86cb4ca7.0","@material/mwc-checkbox":"0.22.0-canary.86cb4ca7.0","@material/mwc-radio":"0.22.0-canary.86cb4ca7.0","@material/mwc-ripple":"0.22.0-canary.86cb4ca7.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.068fd5028.0","@material/feature-targeting":"=12.0.0-canary.068fd5028.0","@material/mwc-icon":"0.22.0-canary.86cb4ca7.0","@material/mwc-menu":"0.22.0-canary.86cb4ca7.0","@material/ripple":"=12.0.0-canary.068fd5028.0","@material/rtl":"=12.0.0-canary.068fd5028.0","@material/theme":"=12.0.0-canary.068fd5028.0","@material/typography":"=12.0.0-canary.068fd5028.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"f679091aef1ae61c94f4217310d6cd1161c48598","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f679091aef1ae61c94f4217310d6cd1161c48598/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.86cb4ca7.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-wBAaBgKRWL3JuwuwwKwewNRoIKF34K+1KId2dUE1fu5M2DCcBGVGyzN0sOpvq4KqqvmRqY/REJFhOx3Yvfn+nw==","shasum":"0adc4b37111571163efe73463cf859443b4e67e3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.86cb4ca7.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7c+DCRA9TVsSAnZWagAABs8QAJCctMhyatiYN7uUmfFD\nNu4385vRGeeeQtZzpB485bi1QhDbO4vh16wlJvM0uKz/8HH0fT4BfHeTFdWy\nlrDisIpTIXlVdlwUPAxo10n8eQqOTvvpNarsVl1Ou9SpuyD6iLW7XmL0Z36u\nSL0XvZ0Xn7xtZytwDiGqdnwtC9qdEQO3zZAeiTpSecQuU8c0r8BS0I0QW/b/\npy6iJ3/lTMS6dnTxQQS/uDzgPM1dmzULPkdkqGC6Tin01MntRUVJ0xz5be3j\nm1tUrb+3TnoYw+xiCY72slAErzpNmcNmDJkN1kukk5Z7/bi2wZWwKEmTZ00P\nE2EPRGcDxmNv+uOL+Bq6UI2sPyE2U5LLD7SrYveDXpa7gx/nziiiB/AsjJP3\nxJcxblAB57eC7gFTc6KKDLsyAX3jswqRqWUUHI58supP7i4lF0gzKW06/kJk\nmyF609/0DLxThyd3UAViohTfwBhpoE6gy8wradL1PAeB5JjDKKgB56CsYwXS\nwiiF8NBQwguDqhyG5dUKkZlCR8znZjIkNvb1mDgda1PjbrvzpSJc2zh+pcF/\nCF8+V4SpL/zkoKVd727rN6sVW1HMkyPx/Lb4mKVnbrxOEZ8crl/lQpzzLCi+\nfJh50nvC1X4cw2CerpuVfPrhK9DTHjhnloqjIITBHC6+8Tm1T+tP3ps6JV6n\nWQB7\r\n=DZ2a\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICq/JwACq0lYFKImtC0eNEMl457OtzqIFy6riY/qy4m5AiAyFifRhJ34sirTilI5lp4RTkkBbe/7JLYXNUVMrEVm5Q=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.86cb4ca7.0_1626197891311_0.3352591187834202"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.bc9a724e.0":{"name":"@material/mwc-list","version":"0.22.0-canary.bc9a724e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.ea77795b1.0","@material/dom":"=12.0.0-canary.ea77795b1.0","@material/list":"=12.0.0-canary.ea77795b1.0","@material/mwc-base":"0.22.0-canary.bc9a724e.0","@material/mwc-checkbox":"0.22.0-canary.bc9a724e.0","@material/mwc-radio":"0.22.0-canary.bc9a724e.0","@material/mwc-ripple":"0.22.0-canary.bc9a724e.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.ea77795b1.0","@material/feature-targeting":"=12.0.0-canary.ea77795b1.0","@material/mwc-icon":"0.22.0-canary.bc9a724e.0","@material/mwc-menu":"0.22.0-canary.bc9a724e.0","@material/ripple":"=12.0.0-canary.ea77795b1.0","@material/rtl":"=12.0.0-canary.ea77795b1.0","@material/theme":"=12.0.0-canary.ea77795b1.0","@material/typography":"=12.0.0-canary.ea77795b1.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"3f6fbd971026d270d71f4fa8515adb70cb387ae3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3f6fbd971026d270d71f4fa8515adb70cb387ae3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.bc9a724e.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-n31yjhY++15ZzOBaJzC85tBCKozAh4UrqB2KGlT6dwdonMjQlVFUs/VgRLEKwPMar2/YPUU50sSVBKLydkpoEw==","shasum":"edbfdbc7d11e52906443b4e0fb6a9300bdfeea6f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.bc9a724e.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7d6dCRA9TVsSAnZWagAAuKgP/1Tr0cr9zRuNfRWwGo0B\niCNh8rKk0F/UUJOWG2uQ8qatGRn2NP+38aCXA50Rad0prqIZ+iKCJ2G2V5g7\nN67t/jcWfEP18XHKdzddVot/J2l/xLT1xsGOj/pvMVWfihxDVkirZhvvcEOT\nXQdPA8Cmup40mpBgwbm/syo63hrm4rqxmctDLpwTWvOUFRGJLApTodQGKyZ1\nLNarjDBKRxCNrZBhyPz3nreX1rshaCLq9oR/oX8Lab/3N2fUhaB8VPjXT4HO\nYoHIh7KXFmiHygU4c7QdxM5lR1/iD8tPRxnogrwvp9rSHKlqrMBsa17uVMQl\n3icVQX4bPlPdryw8HMeWB6w9rgk5sOYB0IVw6PmvvKskbClm23T8c6j0rRqT\nYoxQw9uIGN6Lc0d0ZFx8vEXoTycsZ04/ld/3WvmKdDDq9MB9rj1wjnkrfKCb\nXv1AdRvmL6+d9BWDjlmwJuWMcxyLCiGbr/5z02uSBS2iaKFb/yqcK8lnMBuD\n5VgRsDf08kCMKYarvYBJpYT6eVlZO0BBNOszFShG0j4IoT/KJlEPE7wgSYJw\nyOG6C8kR+ox3iw+L3/GNXsdN86ksqBS08Ss9MHRL3tAl0YvYHPcU0WC/gERq\npuDdXxMRjR2ftmGjzqGLXRVR7nVkt2C9t353N+n64Z+YWArJ1QWRyMBo8pxi\nCUDf\r\n=UQuK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGhY5NnQ9wrR74MGCRu2Zh5tD0yfhWVsVRItUOgmFTPeAiEA/0VRpAq98VXxzcACtSiIa86K4/wIkeTn1Z1bgvpVAm4="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.bc9a724e.0_1626201757497_0.39228987276347027"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.7847b83a.0":{"name":"@material/mwc-list","version":"0.22.0-canary.7847b83a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.22d29cbb4.0","@material/dom":"=12.0.0-canary.22d29cbb4.0","@material/list":"=12.0.0-canary.22d29cbb4.0","@material/mwc-base":"0.22.0-canary.7847b83a.0","@material/mwc-checkbox":"0.22.0-canary.7847b83a.0","@material/mwc-radio":"0.22.0-canary.7847b83a.0","@material/mwc-ripple":"0.22.0-canary.7847b83a.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.22d29cbb4.0","@material/feature-targeting":"=12.0.0-canary.22d29cbb4.0","@material/mwc-icon":"0.22.0-canary.7847b83a.0","@material/mwc-menu":"0.22.0-canary.7847b83a.0","@material/ripple":"=12.0.0-canary.22d29cbb4.0","@material/rtl":"=12.0.0-canary.22d29cbb4.0","@material/theme":"=12.0.0-canary.22d29cbb4.0","@material/typography":"=12.0.0-canary.22d29cbb4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"96a87e19e381c977d8ac1c7a5a20a261fe54c448","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/96a87e19e381c977d8ac1c7a5a20a261fe54c448/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.7847b83a.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-B+7SOaIDi34eZ6nLwnMlwi5eLXw156JnskxB3jT5xMVzcUniz1rAKMcyp9/yuPig1C7xoDAB8MEZAyLMsq9Qhw==","shasum":"f54206365ecf83993c402a4fa5bfc6266a39024c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.7847b83a.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg7xyRCRA9TVsSAnZWagAAEH0P/2ZGhMSxoB9qHxpG93mF\nRuitEGswF6apFCnUBkXHQ4tQKgh35v3sZxFMpblALcPyN3dEqWU0mkCrTvNC\njxGU2djAX4nXt6qjjwK5f0v/F6J5DhI5H2tpXctXTXqUgsrsiTL4Oyn25lYw\nar1rwkcFRV9Q5ldgf1/g/OBU6p+h+y/GG85Fdc/8dwx9Ktyv7s8ih8Qg9n12\nSGZjCdaxoyAwdGV7H3ZsIII431cqDDj3J8DyJN20Bp/QaQmZ7d0HSc7j652K\nWnxrzzeUAcUcU5DWPftGhAmZmg+708fY4jdndz5J0kMiF9aZUL6ETAie1R3m\ngaxyuHxhRPTyFGO24/7gh2l3YYvO3gcGypkuMuxg2/Aq6rIS6INEKvPADZbU\ntJ3/Yd5ZYhZG6XwtYtIY+XYlrOSy3KO1KxCLQKv7pt4NLBNy8UVChRv4fppd\nEY53LBgpeG1fMw2SxM5RcbWxQLC5o1gqdpDumu71TfLRSmTj5m/h22K///di\nSZN4ZSq7Ote+I/yJZXgfg+DyD7F7S03z9WOCeYVDbP9p6K2ZeQ2urSyN6ors\nGKfg3nMZVfeLdFTbqtqDiAeIoHr67pr9aUARTsDl4ZS15eYFy1/1TePw+2v9\nnpUoN97wNqH9Ecp2wx5jwWVXmRM2fqbwyyXmYvLb2OnsHohI7tDFYSvpyYhh\nNbrj\r\n=rlx4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDb8c/mqkBASYEsrK6zqY0IWZgJpOwVGcM20wcSiy8I9gIhAMKHVPKtow+i0ifmHsUFV7OyImiHGJ8A1F83K1XAdg7K"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.7847b83a.0_1626283152905_0.4451239071212727"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.0-canary.8cba18fa.0":{"name":"@material/mwc-list","version":"0.22.0-canary.8cba18fa.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.22d29cbb4.0","@material/dom":"=12.0.0-canary.22d29cbb4.0","@material/list":"=12.0.0-canary.22d29cbb4.0","@material/mwc-base":"0.22.0-canary.8cba18fa.0","@material/mwc-checkbox":"0.22.0-canary.8cba18fa.0","@material/mwc-radio":"0.22.0-canary.8cba18fa.0","@material/mwc-ripple":"0.22.0-canary.8cba18fa.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.22d29cbb4.0","@material/feature-targeting":"=12.0.0-canary.22d29cbb4.0","@material/mwc-icon":"0.22.0-canary.8cba18fa.0","@material/mwc-menu":"0.22.0-canary.8cba18fa.0","@material/ripple":"=12.0.0-canary.22d29cbb4.0","@material/rtl":"=12.0.0-canary.22d29cbb4.0","@material/theme":"=12.0.0-canary.22d29cbb4.0","@material/typography":"=12.0.0-canary.22d29cbb4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"0eb1334d9597f86a21b5f9edc232a1c0f67f6abc","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0eb1334d9597f86a21b5f9edc232a1c0f67f6abc/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.22.0-canary.8cba18fa.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-xxEMezfLrhD5zrHQqANT5fG2NzAYzsz5f+6pfMH3E7LR0j4ixB7qIOKdAhplmuEXIdwOJBjUVKdFOrloNyqQog==","shasum":"5d4adc55dc5df828a60654d9cf05cab9de69cf9c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.0-canary.8cba18fa.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg70ieCRA9TVsSAnZWagAAIu8P+QCdzMWwOUvWv53DpD0o\nmL0Su+syah9JwqCeK/bkp6q9nATK93ZWpL1BEdrD/14ytp3Oz8jWdJ3HeLt7\nKn/X1HBmpMjrqzkaVM33/Nq3+MmSJEE3vV9gdgNSP73b4Df+WI9phHYAlr3a\nV6Hdbl+iaVbROT8bGyas25zyyVVGeUb4bye0e3AHMS4Taoq5OPQN4WHltAjT\ns5GKPVPTJ6uDIPsAG0WRutMNvqc1UZfBjcPDBiLAfHZpuXpbPnuSMSx9rw5a\nFt3nJojGgmeD4GmRgXFDxQTmjwBesGHe55L2+BUvwS2FXeRw53fN28ZEIz0X\nSkz7TdOHG3gzpdcDnHwHFu9xNvFdcopk8pLXkEthpU7jqZ4rdZhkciYVZeaA\n7PA7LUnmfoXxo2O1llQNije2SOKl0tbJ9TipSNSWnYAoKzApRsAPlXYDszW1\nm/iw0PdpbyBXLfGeFcXjiLO3y0VN/oPFKYQRqSf8zSPPPfuJJUljQi+CSIJI\ngb4E0OtbhRTZdKoGGpeKguFE/uDxcpTeCFGEI+0aXKzQCEGcXLaIfhs2ECSU\n9cMuegUVlSgNIYlc1hETfbwGhLiB7zuGiKUoK67l6cIgfJgtwvJxgk/0MaV0\nO5Wfr3KwMpjkS/BlJTO25Mmk/RC59DBx3tbOv3rS0K8Kp5QwBTEZF3X/SNNc\nWtqw\r\n=uCZT\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDvCihgD9EjBGTClINdPktaYJXmwldu7dDQ0//o9G9B7QIgfCYL3w2qGooBLNYfq4SV3AgWjurtOPWhtZvMlJLdZD0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.0-canary.8cba18fa.0_1626294429839_0.697134340194375"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.22.1":{"name":"@material/mwc-list","version":"0.22.1","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.22d29cbb4.0","@material/dom":"=12.0.0-canary.22d29cbb4.0","@material/list":"=12.0.0-canary.22d29cbb4.0","@material/mwc-base":"^0.22.1","@material/mwc-checkbox":"^0.22.1","@material/mwc-radio":"^0.22.1","@material/mwc-ripple":"^0.22.1","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.22d29cbb4.0","@material/feature-targeting":"=12.0.0-canary.22d29cbb4.0","@material/mwc-icon":"^0.22.1","@material/mwc-menu":"^0.22.1","@material/ripple":"=12.0.0-canary.22d29cbb4.0","@material/rtl":"=12.0.0-canary.22d29cbb4.0","@material/theme":"=12.0.0-canary.22d29cbb4.0","@material/typography":"=12.0.0-canary.22d29cbb4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"fbc09b4e8766843c4aef86023c2cfa4cb9e7cf5d","_id":"@material/mwc-list@0.22.1","_nodeVersion":"15.8.0","_npmVersion":"lerna/3.22.1/node@v15.8.0+x64 (darwin)","dist":{"integrity":"sha512-NGfacR/vSHMte7BOrFM7Cafi+tRIeBH8vNFcpP7yjqPkYCXt/9cEw0j1KVtldCRi20V38vkewUKdh2v3DiP5dg==","shasum":"05ce340db5b966984cce87dd6f87a3dce6e5450d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.22.1.tgz","fileCount":45,"unpackedSize":229831,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg72rNCRA9TVsSAnZWagAAUUEP/i4/WOUe2ZqpJrGB9SCq\nCKu6HSu1JsVLi6DnMwsK6QG0nod4cB9uehh8k16x2wUFvd8qYqYYXEF6XHHJ\n9I5/+K1lHPOauOOFCJhrbPhOdvXQEUooz6z0j/mp4CxBKXXuT+Uwh5/xX3ri\n6lN0MrWW7Ik2N8f3XQEpkVaa0QP6+Xja7K8YLm2PjhLFrDhhx3UaxdYoa261\noBDL+bogw8WlfzLNkGKWL2dqsSVE8fUNSNWGQZDyEegi4MKO14SPuduOmUSW\nBEEfdmqDE4uZlI7cTawmeUSeNdvKWKxUXc2WRMFPtL4KS4CTue5zA+osHsiE\ngcjYzxWi1oJvh6HMtckWXqsSgFDOYBKTJ4LZtkwaTYQG/Guw+D+y4z0bfYQS\nAQ1BLzeFWgSfoA63hC7ebeESVtrvppqrSr9dSzv6POnhKcV0yH0i+9hbxAxC\nhg8u/CerL3HKYakFrIEi07pdetKuBp6nq29E/gFvBeEDcw48iDhh2RQsNMhS\nsur0HMZCAgf/6Him/VOeRj9lHOD1UMhIa7ikjMvClx6W5wr4JhFtnxeS4Sa+\nlDZlNFcGtKWqUFWkDWwgph1KemLAqFgp8B1iyGjd3S6lKTzRha1/LNHLvHIk\nPdvhYaYx9fcdupZcQ8JlTNe2e8R+3/r3FFDa/URKxj/TZpIjrfZZIkgw4Wsq\ne3UA\r\n=y0q+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBc9PJnbZoT5rUE25zwICPXCfiWJUQenmUEXZ29j2Eu4AiEA7TQgMoupchwQBvsKX0TBpInYey+Y2WxFoHfTOWZkgnc="}]},"_npmUser":{"name":"aomarks","email":"aomarks@gmail.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.22.1_1626303181378_0.11997237349609402"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.fbc09b4e.0":{"name":"@material/mwc-list","version":"0.23.0-canary.fbc09b4e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.22d29cbb4.0","@material/dom":"=12.0.0-canary.22d29cbb4.0","@material/list":"=12.0.0-canary.22d29cbb4.0","@material/mwc-base":"0.23.0-canary.fbc09b4e.0","@material/mwc-checkbox":"0.23.0-canary.fbc09b4e.0","@material/mwc-radio":"0.23.0-canary.fbc09b4e.0","@material/mwc-ripple":"0.23.0-canary.fbc09b4e.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.22d29cbb4.0","@material/feature-targeting":"=12.0.0-canary.22d29cbb4.0","@material/mwc-icon":"0.23.0-canary.fbc09b4e.0","@material/mwc-menu":"0.23.0-canary.fbc09b4e.0","@material/ripple":"=12.0.0-canary.22d29cbb4.0","@material/rtl":"=12.0.0-canary.22d29cbb4.0","@material/theme":"=12.0.0-canary.22d29cbb4.0","@material/typography":"=12.0.0-canary.22d29cbb4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"928fe21d53da3c383833e0766f262dd5454356ed","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/928fe21d53da3c383833e0766f262dd5454356ed/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.fbc09b4e.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-fA2Hkih6hoV7vv4oL9aIZK3cRdiJRYpPp4fXP06YereIe2v3jME7xPcxsHgdTVkknVTbZaomzZBf1rd88zBWtg==","shasum":"9eacb7e1ae1fc53f26da012619525a7d12999cb3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.fbc09b4e.0.tgz","fileCount":45,"unpackedSize":229951,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg72sxCRA9TVsSAnZWagAAFpkP+QCjCH0r9vN9ihwQj/X4\nh83ZOiApcJsxK96YH+EH2BESlToUNwsO/AoR8zaMR28QvlB4cbvlDQrMRmQy\n2RaoT1/4ITuw+yOvgZw5ORvcDL37oqYsDDD/U6TJuS+dNMkfMHdQBKz5uNDL\npzg0xoTAff2cVBpm8OrmnvqOwWu7n4OZDkhtVckpZv/OnKlrGa0IykXftzHr\nS+eY1fpPE/GbQjRY79+QiZdv7HZ8DTI1ITWxkcpmW2vaAFwDTXCxbEh9yYOe\nHwgSB94l2ThO3wxi9R+nC1mPVESgiUHRjcBqxGYU0V3UM8u9NMN5y8452dyg\nyG32r8HY5/z4Dx79UCOcn58XM/yT/c/0OdVOhnj7XeggwQIwvmmypQuA4ytQ\nSdWbNHNwCYxhvzGbGqoIDIPrcme+U0TwNFpjIYyvF/8IA7ri7TxYKy2jMsf1\nEhbKVkZNHZHjPXFAwVjD1Zb+DmqIdQ6uCeVWNGqcrHIn4Hap+eKJcqP5ARdj\nsB4o2MK9/o9HhYy8AftVpimaBC1LYnlaM81FG9rrDe7mIkG5Wmlc0F7RUpfW\nwF5ACvv4T3fzxV86D7j+vLjmY7eZds6JzcGPkQdA0aW08p+YkRAPUQLu6HGv\nfhL3EvC0EEP1pl1zyWbKQ99RVfO9Vyt8idmRz4ps0g2j07Ja5c3fW/1hENcx\nWdL4\r\n=+Vxu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBgteGPJIsgb7a5KNFY2NWFqyvjDAhn3IkPYwxGXJzXeAiAg0Kc57epOUkhe5zzR1zVAmX3OUsgU9gBNDsowkZ/HHQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.fbc09b4e.0_1626303280840_0.9769440018933953"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.73e9f83c.0":{"name":"@material/mwc-list","version":"0.23.0-canary.73e9f83c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.22d29cbb4.0","@material/dom":"=12.0.0-canary.22d29cbb4.0","@material/list":"=12.0.0-canary.22d29cbb4.0","@material/mwc-base":"0.23.0-canary.73e9f83c.0","@material/mwc-checkbox":"0.23.0-canary.73e9f83c.0","@material/mwc-radio":"0.23.0-canary.73e9f83c.0","@material/mwc-ripple":"0.23.0-canary.73e9f83c.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.22d29cbb4.0","@material/feature-targeting":"=12.0.0-canary.22d29cbb4.0","@material/mwc-icon":"0.23.0-canary.73e9f83c.0","@material/mwc-menu":"0.23.0-canary.73e9f83c.0","@material/ripple":"=12.0.0-canary.22d29cbb4.0","@material/rtl":"=12.0.0-canary.22d29cbb4.0","@material/theme":"=12.0.0-canary.22d29cbb4.0","@material/typography":"=12.0.0-canary.22d29cbb4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"7cb506f7d4ddb8897417b2451e1dce233644faea","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb506f7d4ddb8897417b2451e1dce233644faea/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.73e9f83c.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-FC8+bX+TodoGDbBPFZMOBrnqlGc8XDXE0MbVn7xyctOK7LGP/Ka2jCxRA9oTD9DZyMXD+ZsAyZn98LK/dqf4UQ==","shasum":"d3b07946b71e0be6bfaafb33227d05fb82013bbf","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.73e9f83c.0.tgz","fileCount":45,"unpackedSize":230042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8J0lCRA9TVsSAnZWagAAm1kP/j1poyzivvhuVV9JYck0\nhjNNQwI5WRPSN1x/O6PQDra0G65ZdRZ4pXmrHOG1/VoL6spJBZjBIriQnsRv\nOEaJyAZ2SjSZTu91e7A3LGgTHGl2uQTTSgtMUmRi1hKQ58ZNb86YfIN/V49V\nnZzKq68iA0U8WGyQmRbqgNtBMXHWVr7YWVYE1JuSyP1v7Pzi81fdoMYpF1iZ\nwiyK2HUQmS/d7lthlAU/c9NF3tSXSSx0TPBwooW08onpt9CvQW7KOLpKD3he\n9uki0b1wKRcfuf5wPx3IyVEkLKJQgvYM8kt0fyxH5Ne8p20Vsf4ZXZK/YSJE\nj+p7fgLt6Ro+yC38hI0EPux00VZDs6RyQYg/QXs2KhWXQC/iA7QS01v8btM4\nZZBzk8HmZkuA8RPe2gBnjb543Dia/ov9dux/CJUTTDNr3bYT6PguzfxehYEj\n/Y15gyYQTlTFxRyYtMmzx9XOeeNZEJeE9YXujxHhwNmFuAG3gR2TUN6xDTbb\nJIq+joJkQ/nftY9L5XlZ88n7zPgD42KYDF+ejOpCg/eoMzC99RjtsoGw9KdA\naiGcCPJ+nMyR5HI89s5j9q8Nyo/RV1mAjlSrdidymFXDnb8fwF3tRgqV/TqW\n7gxDQEBT/juHvNDLN7Ck91Iw4r7LKtqAnFlAhHnGI2OeS9h+9lQVNvRBiELN\nAlvw\r\n=xRuK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFeEGmNAvuP+c7rMLQYZ8rWDFPmtmOEq7E6GWATxJX8CAiBcIwnKhtYP6CypgBkfNG7XH7jE0i26IQwIwjRBS81piw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.73e9f83c.0_1626381605567_0.11039990514762033"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.cc0aa7a9.0":{"name":"@material/mwc-list","version":"0.23.0-canary.cc0aa7a9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.22d29cbb4.0","@material/dom":"=12.0.0-canary.22d29cbb4.0","@material/list":"=12.0.0-canary.22d29cbb4.0","@material/mwc-base":"0.23.0-canary.cc0aa7a9.0","@material/mwc-checkbox":"0.23.0-canary.cc0aa7a9.0","@material/mwc-radio":"0.23.0-canary.cc0aa7a9.0","@material/mwc-ripple":"0.23.0-canary.cc0aa7a9.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.22d29cbb4.0","@material/feature-targeting":"=12.0.0-canary.22d29cbb4.0","@material/mwc-icon":"0.23.0-canary.cc0aa7a9.0","@material/mwc-menu":"0.23.0-canary.cc0aa7a9.0","@material/ripple":"=12.0.0-canary.22d29cbb4.0","@material/rtl":"=12.0.0-canary.22d29cbb4.0","@material/theme":"=12.0.0-canary.22d29cbb4.0","@material/typography":"=12.0.0-canary.22d29cbb4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"46cd2c64b884400d63eb38fd81a1ad72accf42df","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/46cd2c64b884400d63eb38fd81a1ad72accf42df/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.cc0aa7a9.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-mQf74zLZMUo7cYdAxM12SM1Z/JfA7HzegkErT3xG2oWBErKbh1inb1ivLr3x3JC+9TadnXpNLW9r6mc1BXJjKQ==","shasum":"a33a2d205cfe46c82d33d2f796dcf1b637d65577","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.cc0aa7a9.0.tgz","fileCount":45,"unpackedSize":230042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8KLRCRA9TVsSAnZWagAAjIAP/itpQxL3h6VvHYlUkFer\nucZcygRPFP8+awEEb9PQ6PmyzIb9vzv+6c37U2os3XXbKoF1bTEYYm9GGre1\nLL8cX8RtK3vVAJ83ajWapqaBs0OVE6JQaVnBaKDyBz2LEjzsqupTV45GlvQb\nBvRC1NZ7B3fkEub32V2awy2efL9awUlNBpd93PjwL5Se+CMMJzqS7zsc152j\ns7fQeTiku+/ka+2JcfNTukrI8i4l8CFljdQlu3tymuuYb6Sm2IqNtX5jaXiq\nflV3C2iwDKE0WPuPt4hv81bmla12m96C1UY+meA/vVZuWrVWGx0HCVrUYwMf\nTMOs9YvS39yqcprgZjQgMVweF29t9ZcZ70FnZvyAAKdyw+n4v3xw+xu/aWlh\nkdRjno15aAM0YBf08TCwUfGrkCUn1RJPY877l2UWvOyttRhYbmLnaGGW826C\nBiMvtBRdED3+3sKtVqORLp6gkrLdScaeVjnfl6N7m7p2P4g9U1gz0m/ndWBS\na05Jub8FXQ6ePyY+g74DVdz2VImR82/+QPhJSKrVuo8onLdU1Zdlc4jun2ox\nu/n5klV2ewFAsgf3XF56Uru2cWIHfjQb1Y8KddjeiC6spO3dBZHwebkgOiCZ\nyEz0mzEJuA9WfW3VcCosCcxKhhJxb9brwgY2KXMOL6hJdc80TtJe+O6C0c2E\nRTPE\r\n=H/6K\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCqRS46vAFylz219uj2iFd4QvkNc4mflRrGm+WxntON6QIgbm6Dv5r5ikPA0Wf5r7aaAAvi0QJMkjBait6mVtq75yo="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.cc0aa7a9.0_1626383057758_0.7086280132415781"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.a8fcac45.0":{"name":"@material/mwc-list","version":"0.23.0-canary.a8fcac45.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.22d29cbb4.0","@material/dom":"=12.0.0-canary.22d29cbb4.0","@material/list":"=12.0.0-canary.22d29cbb4.0","@material/mwc-base":"0.23.0-canary.a8fcac45.0","@material/mwc-checkbox":"0.23.0-canary.a8fcac45.0","@material/mwc-radio":"0.23.0-canary.a8fcac45.0","@material/mwc-ripple":"0.23.0-canary.a8fcac45.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.22d29cbb4.0","@material/feature-targeting":"=12.0.0-canary.22d29cbb4.0","@material/mwc-icon":"0.23.0-canary.a8fcac45.0","@material/mwc-menu":"0.23.0-canary.a8fcac45.0","@material/ripple":"=12.0.0-canary.22d29cbb4.0","@material/rtl":"=12.0.0-canary.22d29cbb4.0","@material/theme":"=12.0.0-canary.22d29cbb4.0","@material/typography":"=12.0.0-canary.22d29cbb4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"7319affa5e07f6651089343a3fdf21864f2d3de3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7319affa5e07f6651089343a3fdf21864f2d3de3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.a8fcac45.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-mbFRUaWtnb3XSk8G+xwzk82WaPNVXtaFfka3eap0eCZNdLXgmWVNkSFL/pSwBDdcYHo+WTklbr2WZe8vBOFdDQ==","shasum":"0584c149f0646f7c1e802d0a03735aed26bb7c62","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.a8fcac45.0.tgz","fileCount":45,"unpackedSize":230042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8Kc9CRA9TVsSAnZWagAAQqAQAKSkev1I1kaIsv0Wsp+d\neISviHBVk6G4Lprb4hLw4jn3H+1prOTUB/irbNEflaK2NolpwgO+7c58Ak7A\n6aS5YAO12dsQsUiXVYo8L1xz+npPVdzK3zaWFUU2UIOwy/K7f64L2fTMpV8j\nWC0s1Ji0244vi2SxuXZGP+11UPab0d5sYoB/r/3WanBW6hkDXDMwxslf95HL\n04aWGkyWF8Tpjv315R0oXm4IQf026Z571IhzAvI6GF47LQvOGdJ1BCLg4skt\n96qjTwVSm9qcnt9mieWUCFnbGqpYHvtDXa5ukq1Cb4/ePQOv+vDOAvyYlO/4\nw3aTIYlK7NtL0cJTcZJ9KC8tbfPeKMKzMGdbJYa22cQ+NZAvAGYE3SA6zH66\nke6JZhbXwKz2QXdLu6ZSH3N+ue1TajF003haw6EdhjpzYS2gRKdNGGFTBsZN\nOsAJrzI1xvU5wZ6cw85ZWWcmRWcvUH5q9+s+wezjDZnPaoo7U8DwmRKQxpOY\nhcQ5zpbaOo63q2r6tq12DYUhRz2wgiVvsQl2eKC+3x9+I1TGIFlrK2oNbMiW\nuaOdr2J1gnztgsCbwgQbvwdvSCLN5jLxkQmKTrK5Y/cgiwvWMQcvNAISm5aw\nbh5EdKoZyaXjoKdQfJlGfbWsHCaRkgy594epVvb6CeF/MoTWUh7ai6dbdBIo\nNpDK\r\n=r7WW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCM3WZQ3YrTyllluRNykGgwFpvQbD+YiE3MqsS6GJc12wIgMh6TV0dS9W8/KkFoLbNCPDGz3Fc1nsuYSi1U7ch5TnM="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.a8fcac45.0_1626384189411_0.9344320346260682"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.3ca580d1.0":{"name":"@material/mwc-list","version":"0.23.0-canary.3ca580d1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.22d29cbb4.0","@material/dom":"=12.0.0-canary.22d29cbb4.0","@material/list":"=12.0.0-canary.22d29cbb4.0","@material/mwc-base":"0.23.0-canary.3ca580d1.0","@material/mwc-checkbox":"0.23.0-canary.3ca580d1.0","@material/mwc-radio":"0.23.0-canary.3ca580d1.0","@material/mwc-ripple":"0.23.0-canary.3ca580d1.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.22d29cbb4.0","@material/feature-targeting":"=12.0.0-canary.22d29cbb4.0","@material/mwc-icon":"0.23.0-canary.3ca580d1.0","@material/mwc-menu":"0.23.0-canary.3ca580d1.0","@material/ripple":"=12.0.0-canary.22d29cbb4.0","@material/rtl":"=12.0.0-canary.22d29cbb4.0","@material/theme":"=12.0.0-canary.22d29cbb4.0","@material/typography":"=12.0.0-canary.22d29cbb4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a2e57ca3915a4619a2a2fe234e3e3bb8be5a5496/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.3ca580d1.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-lJ3O6Q6KLardVvq4cb/RdYCYwzcLFaqQFt0t01ylTBKh71Tu+6QeDJObUEIWzXSM+M8qoGfplvWjebc8ygtYwA==","shasum":"eb542f5e58cabebf312d49bcd20d47bcd14ae845","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.3ca580d1.0.tgz","fileCount":45,"unpackedSize":230042,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8LD0CRA9TVsSAnZWagAAwFcP/1t661yczTEoTPdyUyDw\n/OLGFF2ezA/ZL8nlvQcXke0YMWEdtzKjplSMibvguZ02+nyf/KSAzL99Nnfz\nyQZQWdo9eLlve1tNA82a4s5NRkGutk1VV98JYeNsOHauByAu0j5rBc1HSxxQ\nunzdUeRi1q7oCFkU2oi6/fsOI7qwDtQ+EUvqTBuPS+Od6fq6nOZUR78ftSYu\nIV8jPoACQyE/bFJr6QRsviAcmVFfQijut+yNQZExy0ZSlppuZUEFT8ERMAMF\nsj6oOn3CqDC3NJ69ttFTM+RgCffq+Gnjw6AtMhDp6PGUs8+F4T2L70R1IvYj\nXYtHwQhKk3GdcBvTcznPQe7UZdHtcVlPkLX8LJuGS0g8RgfXINjkWdJLN481\nm4DjbNBfne84ygtq2/QTcoC4puK+PY7VtrHAt51dn9Rs2yIS7XzUMW9ys1vp\neq/vmgjzRsXi2SvwZx6cLQ3WSr6D/6gcKR1NrUJ2cqdqY27Bect/jPBBrBPD\nIU0eZCb0hDMZCJ2NYU1jCHvigHlKM9nKAE9p3QWKnfpb0r3WLG+uJE4QZdIb\n4NgMzGCVpp1cLJ1ymgYnAOUSHZ9OXt96clVZ/1zQSoNPLVv4ylMTfJH34mT8\nRDXZrOAV6ZSXdUuRyXKgPiWsEVssrPH9BE/Dy7HHE4CL7Wru1IF9tZyjje9y\nK8AU\r\n=947M\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF6ag7K4SPvPIBKON2VlZa2ZeBI5sTmoNBYarDY0Mzg8AiAafe4ogl+HT4QKwLqkHZci4Xp4zy1Qi0ysouTiE1wGew=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.3ca580d1.0_1626386675916_0.8942337460336931"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.9e41cb2e.0":{"name":"@material/mwc-list","version":"0.23.0-canary.9e41cb2e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.22d29cbb4.0","@material/dom":"=12.0.0-canary.22d29cbb4.0","@material/list":"=12.0.0-canary.22d29cbb4.0","@material/mwc-base":"0.23.0-canary.9e41cb2e.0","@material/mwc-checkbox":"0.23.0-canary.9e41cb2e.0","@material/mwc-radio":"0.23.0-canary.9e41cb2e.0","@material/mwc-ripple":"0.23.0-canary.9e41cb2e.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.22d29cbb4.0","@material/feature-targeting":"=12.0.0-canary.22d29cbb4.0","@material/mwc-icon":"0.23.0-canary.9e41cb2e.0","@material/mwc-menu":"0.23.0-canary.9e41cb2e.0","@material/ripple":"=12.0.0-canary.22d29cbb4.0","@material/rtl":"=12.0.0-canary.22d29cbb4.0","@material/theme":"=12.0.0-canary.22d29cbb4.0","@material/typography":"=12.0.0-canary.22d29cbb4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"66f1b7c941717bc279a73626020dd81fa186f3b2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66f1b7c941717bc279a73626020dd81fa186f3b2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.9e41cb2e.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-cyXn6wKgVTvShfU5cNdLBGgSnlBGhjjZG0B6j0NNh1hx7XlaedeVp8kw8HIx10ScvR9CrZ1ge9tXLAyqjUFALw==","shasum":"4021f5b58d307ed34a93ecc01b1237a77f5e141c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.9e41cb2e.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8MAgCRA9TVsSAnZWagAAtCgP/jD+YM965vb57wzKc4I9\nCVYIByyxgPrHNbSUtbDKVTldS1QxoDCcYtp/NTdRzMxbvq6uhWnUGj4VrAY3\n3+DodnZSxsou8J69OMLDa2ahYx/fNszRdIlhLKtDuBYqLgoncFMLEaTszNer\nFyq19QEcQ0cSZabBIo+I7WZPCVBFxxEVqLcv/E67kdZ+A9XMhIZX6jTXbLhe\nr5OTuJHgRli01UFC1W7ZbdMKbWjJ2kQL2k8LL4+1vkSQiVx3S7+C4aivk5fS\nlqywUN0v3D8Ssw9028hWYF6Mxg3o17lOyMRSKt9GfH5Xw/OS7mgSvGu6ZDoF\nx4QVS9MKnzW9urRb9ybsgjYZEiOEj5TcTc4+kswIWDZozbuMy+ij3v9uMG6R\nb9jL9ferIxa1ve2EZtBcjmcR2zHc4KPk0SefPn0giZOqFf/UztY4q6sAWMe1\nB85DHjz3n4IoHq1SfA1/VzEkOstCW9d+xGOLuAXtjNbdLWR3QClYLd2XVmQ7\nghPdX89h+mz99isnjJml1SUt7THHfsrwYphxdCPosYoLZbiSGdlRoUS5Eyvh\nNJzVe+yD8T7pJPA30fbYy5XWq+e9nGpMWDyUjQlYEUgG/aZX1TmKHG6C3rbc\n88/H39rVI7GKC9zWHvsLjZxjyKv1hUGxkNpO9FA0G2hTBE3aNm8l9TgM9uMu\nhbIT\r\n=jNvp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDf46TBj12EphfXtQ7m5jSgHu5+ejUAONECSqXYF/NVDAiB+iJJI9/Tm2f6Sz0zXsCjgw6hg4QngjZQgRTDbyzM4iA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.9e41cb2e.0_1626390560020_0.021001286096098637"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.c180db74.0":{"name":"@material/mwc-list","version":"0.23.0-canary.c180db74.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.9f68a932e.0","@material/dom":"=12.0.0-canary.9f68a932e.0","@material/list":"=12.0.0-canary.9f68a932e.0","@material/mwc-base":"0.23.0-canary.c180db74.0","@material/mwc-checkbox":"0.23.0-canary.c180db74.0","@material/mwc-radio":"0.23.0-canary.c180db74.0","@material/mwc-ripple":"0.23.0-canary.c180db74.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.9f68a932e.0","@material/feature-targeting":"=12.0.0-canary.9f68a932e.0","@material/mwc-icon":"0.23.0-canary.c180db74.0","@material/mwc-menu":"0.23.0-canary.c180db74.0","@material/ripple":"=12.0.0-canary.9f68a932e.0","@material/rtl":"=12.0.0-canary.9f68a932e.0","@material/theme":"=12.0.0-canary.9f68a932e.0","@material/typography":"=12.0.0-canary.9f68a932e.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"33c53eb23c6f331885c1a70223139ee7e69ae97a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/33c53eb23c6f331885c1a70223139ee7e69ae97a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.c180db74.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-rVPtQH8/F7caNTa+ibJet9Zlto+0SgGkhDbLCG0ic6kUXNU3ChIarzNepu+ESehETGhM819sXz3kWciyIVQkww==","shasum":"a89d0475b8362fe97c26c1f1b8ef987dc88305eb","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.c180db74.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8cELCRA9TVsSAnZWagAA7MwP/30B120tn0WCfo2ocqCh\n/LBzW9BiK9XtEQM+jvAeXbDQYrBS6k/KRVtF1AFbPSVcEDFYRwSCJL1QEG7I\n/RWfElZq4cpLpNLmzThBQdLkl2Nf38BNVmbGhEl1vzbgufETvc6llVuWWqtc\nCA/dM3JIBSvLIDV9N3ggjZ75XjD6BhL/uGjrrMRXubuaNiw+fhZsIfAfq4+x\nDAmRVnR9BAEFWAoxdSmPtpGuMtMBB+sdejNAOUdb4KOqWvDZdbBR2x4JkV/V\nRvtj4taccYTcdoA6xWBrT8l97CEnBNj5JJpYtLXf4WX2TnKusVn1+9pwWJLn\nN3IzIy2xUUpJcS8xl8IiobY9HIgYO2gUzgANH8crsXbDR4wqmYBcAoCMIPSh\nWc4vkLYaODzGcZwl76jQy88u2MJfR3TW8cBMScdo4+iemoeq5wPwX+xM7kqT\nEoTaDpMUQyBiTKd6y0TN4Ay06qgLfkYCze8V85tyTTgSPyrsW4e+o1X2sBlx\nASapIR13yCRV/2HRAA5Ua3JeSADM6jCsF+q6EwsjMVi51jVMoPfGQY0cboY3\nKS1onx13ddZJ72PwcML1G9rKF0cT7my4RiTCsRms3OriGdS8nR0UprKZyfj7\nDOGwzMML8+fW8oY+Ce2pWVU8cXi0hCa4DO1fsEQD1LWKTt5bA+JkQdJzSiOI\nMRiF\r\n=WQQL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD55Lj/3hladIUp5/TUaS/XGH+HxSW+w6gCev8YC038WAIhAKNVChl221LWBV9983waUOtMg7/q4TctdIkoDG/Hm03C"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.c180db74.0_1626456331843_0.716838070544604"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.0d0a9267.0":{"name":"@material/mwc-list","version":"0.23.0-canary.0d0a9267.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.9f68a932e.0","@material/dom":"=12.0.0-canary.9f68a932e.0","@material/list":"=12.0.0-canary.9f68a932e.0","@material/mwc-base":"0.23.0-canary.0d0a9267.0","@material/mwc-checkbox":"0.23.0-canary.0d0a9267.0","@material/mwc-radio":"0.23.0-canary.0d0a9267.0","@material/mwc-ripple":"0.23.0-canary.0d0a9267.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.9f68a932e.0","@material/feature-targeting":"=12.0.0-canary.9f68a932e.0","@material/mwc-icon":"0.23.0-canary.0d0a9267.0","@material/mwc-menu":"0.23.0-canary.0d0a9267.0","@material/ripple":"=12.0.0-canary.9f68a932e.0","@material/rtl":"=12.0.0-canary.9f68a932e.0","@material/theme":"=12.0.0-canary.9f68a932e.0","@material/typography":"=12.0.0-canary.9f68a932e.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"edc1a3fb88ad7e6dec8f22e73f329dd02bca032f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edc1a3fb88ad7e6dec8f22e73f329dd02bca032f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.0d0a9267.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-lijr5RS5+1ltNuq/4UAVQYYSlACyJlxlT7DAY3QlKi+CnlhvNoUZCo1/6tT14xxJuYILSngw2lWecUe3m+AAXQ==","shasum":"aff2a875838352a4fe9350bcb85eb4d04c075706","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.0d0a9267.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8ciZCRA9TVsSAnZWagAAAqUP/2oZvm69lG1yi0DoyzLk\nR0NAyOjMJEF+cuUaMDf9CNlOnKYk4qrr2eXyQq9EoFfoivHB71BD8sCpmMoT\nbPR2RxTcJmnBkqerQRmqlqfAQxI41OkxJ1qkOSbQRY7m3lTnjPP3BRl6V2f2\nmfWJqArkZOvo8TP8/bzztIhO73a87tLFwjgyV9Xl6prLKyRI3eLIIhD9fezX\nBiI2ZUPbAgbnSc4JR5PUnEp7WbklHG+if3g0lVnUYUmraOUN4NzYPcHRxIej\nZrcCFvQPknt17rIZgsLRoWbl1NdwaVB37id/HNDpa+iSA4hb5LsoEFsNawtX\n0QNNS5aoVJUDw1veaIb2vOGvOAQRPWAPOyWhBbt73HqStE+FZHn9FMgxrUfO\n7bGEpPF+9YDrfRWyU9DsEh0Swv7uKIgCp/8c5XenInAXIJaL8UcjKRJHPuQC\n70BbdY/6pNEaGwH3mKbnzExQveOzjU5nEXxd51QFgsJL4Dq/qCCbwKPglfBW\nglw6Unzq34x7gq08ZA65E9M6PIuf2VJe8C7QxMNxt4HzRPwvuv/dFz5j2oQ1\nf4Gz1Rj633khLiUqDjwdscVRmFzgoFBrLMiOqLNB8Tjsfj/OSgu+HDcd0z0P\nRpxa3pFJ/sU6x+P8RJ+/Pg8SJRU375aJAU3jzm1Se/y0XinBNyG/yaIDB+LN\nG+oK\r\n=qNN/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOWnfRdKUbcJ4LaPhwVYq8u5ZqAwOEImWP4TSV6yJDtQIgHyk95A8sSEINuL5mhRT8WPbp7tiVQ1WBdLimR1BshyA="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.0d0a9267.0_1626458265448_0.34947441308801097"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.d234ec3f.0":{"name":"@material/mwc-list","version":"0.23.0-canary.d234ec3f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.9f68a932e.0","@material/dom":"=12.0.0-canary.9f68a932e.0","@material/list":"=12.0.0-canary.9f68a932e.0","@material/mwc-base":"0.23.0-canary.d234ec3f.0","@material/mwc-checkbox":"0.23.0-canary.d234ec3f.0","@material/mwc-radio":"0.23.0-canary.d234ec3f.0","@material/mwc-ripple":"0.23.0-canary.d234ec3f.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.9f68a932e.0","@material/feature-targeting":"=12.0.0-canary.9f68a932e.0","@material/mwc-icon":"0.23.0-canary.d234ec3f.0","@material/mwc-menu":"0.23.0-canary.d234ec3f.0","@material/ripple":"=12.0.0-canary.9f68a932e.0","@material/rtl":"=12.0.0-canary.9f68a932e.0","@material/theme":"=12.0.0-canary.9f68a932e.0","@material/typography":"=12.0.0-canary.9f68a932e.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"950f54539b9a71153ac09a57ec5710112c307c8f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/950f54539b9a71153ac09a57ec5710112c307c8f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.d234ec3f.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-jbpAKmpSl/DqUOitCbgC9EfL1lVztfWQS2JDFId7Xg7ofBg1DtzhKE5fXuwYgD/VszA2VDdFcCNK4rTxYxu1KA==","shasum":"a5acaa0d4740496d591383e68c4ab4bf8b888756","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.d234ec3f.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8csRCRA9TVsSAnZWagAAm0sP+wc40RwI7/dBo0xgXOBi\nJTI1A++lvH6DNdIGApvgZ1Fychi+WIcZdkVXYa+oZoiu7hxsov9jX6k2NShr\nSKCASs9tdQG5KlRly+h4YcMPG+QtJO9ZoYAqpHnDx1NFtKOQhwSAPjEg/1QS\nML0wyup5rAjHXivid8jjF5bam8nX1ovCnFBGvUhEj5LDJ9Cf84mu7cgK86JW\nriRz48Le3V+weLgKDP6lTmkePSHWRmMipZb7TkJ32L2JcCK8EZD/93CTLzv4\nSkE2GJh93eU2rKGDJXKETlwO0/eSAF7nXWMuJ6NrzIwZK0InexjrCKltdAxO\np90YXgm1erPQuXXlefRx3CwVD5on3kbHi3MGkD5mhBrGuF585s9lJR63Ry5X\nFW97G/rXH6oc0aXY0mHRueZnby1Ec7dgkeEVWD0UNLgI+rma2QvutQ0xxlof\nG/atp7mb9FLgRfr81vxXq15TG2lUE3xFJtNyVgeD5vdOCZ6ufnc4zZ+aiOFb\nVE5Eux5MLIZ0eK3mrZETSMALOj1S1b1TLnjlUumoBijZsaWu377UFezndtfM\nI4lH/K8TeLwx5jlWq7VrWRCKQ8MSDbxFqURaNluYFrfwycFwD0X2C7DNyhWh\nJh5xrMWSAhtult4Xsh8KbfD34qxAQdJ95fAEwYFjAIHcPbNRxSdI14cLanp3\nOfvN\r\n=RUNn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAZ3ifcIMN4/0s10Oh4UKTpSDaPYSSBWRpV//sEgMvJ3AiEAzX7ECZpkjRxeCd4vQSyA+FkoUDkfpIwE0/3AexlQ7FM="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.d234ec3f.0_1626458897437_0.5699352283767227"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.5cd4bcdb.0":{"name":"@material/mwc-list","version":"0.23.0-canary.5cd4bcdb.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.9f68a932e.0","@material/dom":"=12.0.0-canary.9f68a932e.0","@material/list":"=12.0.0-canary.9f68a932e.0","@material/mwc-base":"0.23.0-canary.5cd4bcdb.0","@material/mwc-checkbox":"0.23.0-canary.5cd4bcdb.0","@material/mwc-radio":"0.23.0-canary.5cd4bcdb.0","@material/mwc-ripple":"0.23.0-canary.5cd4bcdb.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.9f68a932e.0","@material/feature-targeting":"=12.0.0-canary.9f68a932e.0","@material/mwc-icon":"0.23.0-canary.5cd4bcdb.0","@material/mwc-menu":"0.23.0-canary.5cd4bcdb.0","@material/ripple":"=12.0.0-canary.9f68a932e.0","@material/rtl":"=12.0.0-canary.9f68a932e.0","@material/theme":"=12.0.0-canary.9f68a932e.0","@material/typography":"=12.0.0-canary.9f68a932e.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"5c053f1de07d32aeb409f327470360f0b5c02ae4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5c053f1de07d32aeb409f327470360f0b5c02ae4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.5cd4bcdb.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-fKJdg//PNhPUAYxGMcbY7EDlBw4RZqH4URzp6naMz4nkns2tOA4JdbjLambeYcL7+C4VVjYj6wPpQh/jvkdj0A==","shasum":"464e47c59a7883b810e3dbf12302b4cc5c075c00","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.5cd4bcdb.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8fZHCRA9TVsSAnZWagAAytsQAJDye8rmu1gYHbFjc9h+\nS28EfHapfrtyLiM+5eeuUuNaUCspuq3GiHZmcQAEp/Wf2DrfU0Sy3eElDQ09\n3du0G9CagkGfvCCYMAdsbCD5o29U9Eb3rqZtw53Fm3pWfxnB0Gd2oecauGKa\n/y7x3XIa/P4M0tB4luy2PunBlYWThRajs7Okrisy/D9+k7Mw2TN4NJ0esocj\nzESNz1+egArVfO4VhW6vckwkF0g1J+kGFq2joaBxk8uWXdzJSoJxOzFNz6CD\nwqf3JZO64gIgikiy/tGffls3V5Qa0gD+rfm7vVPReyHZMLlX6rtrikpY4qz6\nx6U7oI/AQ/1EzbU2/xn7FocJ99Rn9BydHHf61eqQxYMgfab4AG6Jt4O/Zp1T\n1EZUQzGSTD0YrUheKzUii7yNwaEHp1/WbiT63T47ZwY1kDl0YTTx0Ilp3b29\nd6/r+aahLDbLqDW8X8uFohCUAs2Bf5Ns7dkQxW7EWLm77clQUSUOQvzbnQfa\nR8fPQGB/pRPaQ0aFfygpOqbsmT3LUJPUNWI9fcoVKWv2lyHoKiAbmQNf3Z+h\niZ1A/mwVFPNk4fj8wk83sJKETEJRvxR3BJ5P13Ze0mPdD5nr5T1UVcaBJnwh\nDgvvqgrf8oQvg3YoqCWrk3+zfKY6OYq8gho66bJQREPrFXyBt08s9BvWb6VM\niWkd\r\n=gmMc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCPDuPyzxyG6z1TsNR4KoAv59rjjxm/nEZnx9ns9aVoAgIhAJ+zu0VH+5SrwnqVCesr0IrO9+XbbBVPPGLiuzeJKOJl"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.5cd4bcdb.0_1626469959184_0.9211022151892967"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.2b133cb2.0":{"name":"@material/mwc-list","version":"0.23.0-canary.2b133cb2.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4d95812f9.0","@material/dom":"=12.0.0-canary.4d95812f9.0","@material/list":"=12.0.0-canary.4d95812f9.0","@material/mwc-base":"0.23.0-canary.2b133cb2.0","@material/mwc-checkbox":"0.23.0-canary.2b133cb2.0","@material/mwc-radio":"0.23.0-canary.2b133cb2.0","@material/mwc-ripple":"0.23.0-canary.2b133cb2.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4d95812f9.0","@material/feature-targeting":"=12.0.0-canary.4d95812f9.0","@material/mwc-icon":"0.23.0-canary.2b133cb2.0","@material/mwc-menu":"0.23.0-canary.2b133cb2.0","@material/ripple":"=12.0.0-canary.4d95812f9.0","@material/rtl":"=12.0.0-canary.4d95812f9.0","@material/theme":"=12.0.0-canary.4d95812f9.0","@material/typography":"=12.0.0-canary.4d95812f9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"72202d1bfc4060bef4aa100b9593a5dd27125d0e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72202d1bfc4060bef4aa100b9593a5dd27125d0e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.2b133cb2.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-rgrXHYv1kwmLRnaiY1yYaZ/qEAW5Xm9++7sMfne8ZcV2m3hoQbv//9YbUE3UqlDbMUwXeIwqs8BS4Tu1mJ9QHA==","shasum":"324d2265dd7c9eef7fe747f81f70886a74b78e1b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.2b133cb2.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8gMLCRA9TVsSAnZWagAAZjEP/1c1/G2AvtkBwgepo9Fq\nXZi4XesNG2OLf7t/TwZsXc7VQx+MaEYPBRFWbVZcZW6FaNF/j4tQ26pDrh/8\nPU/CveH+0uY75G3xTXqicb2j8J0zlG/AsZX+rjBXgwRK5JLtY2zhdaUQFU19\nqsr8gKuNhPOA09d1/lRZo7rWxA982mJqKryGN79C0SIcCy+H2vj0H+PyTJqU\nMVJugwpBScyOaL+OI4mZcgpYyo6dzQT2HUUryCxUpPtcQ8X/8fEVk5V2nbAK\nq2agXX+bRCnFsysXys0eW1y7UNmN5+V6LHpf+PXkWCioOQCnRUUqCwhOdc83\nA8HByfLxSiIxHJBo2/LSxUjkqrjumR3bZaFGMJemCrBQh/MwyPz0hjTzVO3F\nb3z2MBaol/hTsugLQZ/5f+3/ArX5zs46gCQUoZWVydsXR2MacXpAnqPu7X3E\nlV6eouVmsAkEJROWBO3/476rYO7BJxYf+lRLcvgPNAgt2eBcijKfCZGxTZda\nBdf658RsdgMJ9YglmH2GHUpiSjD6GC3R4JAOZwmADJGWjeoleeecT+36YwkN\nSr/G9EHw7pammqCKD8u45Qttdi1nEZ6akMy09TncspjpOtE3AtR1+6pfZs9t\nVSj3TMcEL0O/Hq86dU8APtZiX0gipkAmQIxi7J3r9tYp7oqzbJXv5FQrp3PA\nZxL4\r\n=RBd0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHLgX4cdElAFyifyuB6ExQwSHru6r67SKsFtHRrYULQgIhAMRiVuuq1jpP/LxYL8Y7LYelIRPVzclVJpL8ZrJfwEkv"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.2b133cb2.0_1626473227038_0.8722846626634992"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.ae4f422b.0":{"name":"@material/mwc-list","version":"0.23.0-canary.ae4f422b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4d95812f9.0","@material/dom":"=12.0.0-canary.4d95812f9.0","@material/list":"=12.0.0-canary.4d95812f9.0","@material/mwc-base":"0.23.0-canary.ae4f422b.0","@material/mwc-checkbox":"0.23.0-canary.ae4f422b.0","@material/mwc-radio":"0.23.0-canary.ae4f422b.0","@material/mwc-ripple":"0.23.0-canary.ae4f422b.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4d95812f9.0","@material/feature-targeting":"=12.0.0-canary.4d95812f9.0","@material/mwc-icon":"0.23.0-canary.ae4f422b.0","@material/mwc-menu":"0.23.0-canary.ae4f422b.0","@material/ripple":"=12.0.0-canary.4d95812f9.0","@material/rtl":"=12.0.0-canary.4d95812f9.0","@material/theme":"=12.0.0-canary.4d95812f9.0","@material/typography":"=12.0.0-canary.4d95812f9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"8bddb410bdb60fa3790691718471a6b49c3f8765","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8bddb410bdb60fa3790691718471a6b49c3f8765/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.ae4f422b.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-/W7zT/sAJwkDtscfi2cEotfzlBEWVseto3n0qbCIEuyHu7JOc9AvPagx+5bNfQHb7xifXfyT2gSh2ChkMYI62w==","shasum":"21f2c0f0cccbbf5a3b212c67849320454f726bd2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.ae4f422b.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg8hw7CRA9TVsSAnZWagAADIEP/2beTqyQV9ERQd43MWwD\na8gthckWVmiS+ft/oxP7ucowhFhxY1GK0kH31P+sOk0baIaY4t7TBF0JtLYu\n90r6C7VDM7HZhZwSwwaWkrvJY/ju38lIH0V1XSHyR3tKa8wFVssjZO6yvWJT\naefnSvAic55a5fTvWXu9VJyuscOMljDSPAmCnfoNJeaKs0RTwZUdqy9+7U7K\nYW/sCdlGAWrZDSx3XCGLO0QtcIHnpe2++0jbPfl/ZQt/QCSK4W1jaGhsdzF2\nsf+ZGzZbYpzU/JU5wdvKQ5H0Hk2iGO3gAkJkMlbKLj1frBN+MXLJNRMe8UNX\npNKmFvIBtsu164k7atruFD+loU2bVGuIt2QUE1NAhlQVFLp+oJcDz5c2WJQU\nDls6zU0L2b5/yBSSUyUewHLLUtoIzbK5hPKTrG7G+M585eMCUd+hmnqyikXm\n7e9zjoB0jpr8Zx7e2STmL7MIceOFbci7qmwVcuUUKXj3BuZxR8nUTGHWHdPh\nWCEkH1hP+XpIHAijTnougSLaWVLltq879BZA5UDHYZ4VNhDGq0Hnw9R6O08+\naW4iw7QZf+IjNw7mkSCR9GLJ6UIeDRzLJPTkJT+pz8JH6OFipqJ423V7QD0q\nH+DQRVeCV3fDNFoA1qSj1+rq4CjD5rMKamUnc9gADnCDnGpeSsYjiOIvO6m9\nqoDO\r\n=XqS1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQChh+pkPeSxMLGKPnFR89EojAUdi/hkJ+xzco0LYiSZGQIgHnm9rnUwCsC6oSNalao3j5OlqkyTfdnucOiMRHMLp/E="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.ae4f422b.0_1626479675205_0.5008758565999905"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.90ff8057.0":{"name":"@material/mwc-list","version":"0.23.0-canary.90ff8057.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4d95812f9.0","@material/dom":"=12.0.0-canary.4d95812f9.0","@material/list":"=12.0.0-canary.4d95812f9.0","@material/mwc-base":"0.23.0-canary.90ff8057.0","@material/mwc-checkbox":"0.23.0-canary.90ff8057.0","@material/mwc-radio":"0.23.0-canary.90ff8057.0","@material/mwc-ripple":"0.23.0-canary.90ff8057.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4d95812f9.0","@material/feature-targeting":"=12.0.0-canary.4d95812f9.0","@material/mwc-icon":"0.23.0-canary.90ff8057.0","@material/mwc-menu":"0.23.0-canary.90ff8057.0","@material/ripple":"=12.0.0-canary.4d95812f9.0","@material/rtl":"=12.0.0-canary.4d95812f9.0","@material/theme":"=12.0.0-canary.4d95812f9.0","@material/typography":"=12.0.0-canary.4d95812f9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"f90c69a94171ac1d67bd6c3315ba759c0e2e79b7","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f90c69a94171ac1d67bd6c3315ba759c0e2e79b7/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.90ff8057.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-kAJ+7wFhAJonPNvWpO7XLDUHb+qG1WWbxpDJDTHdfVGjGsCYbQoLyqAviqSFBGB9AONVSPQcvPROsvJpPcdDTA==","shasum":"13970b1f2a50ab37446f37e32cd05db5ddb48127","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.90ff8057.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9YdSCRA9TVsSAnZWagAA/eUQAJ7T62l+N5sY5MlPgFhA\nj14oUFOVRsqTQCtZAG7uTPTV22zEYEBVjDj8zXYNc8/zPJb7l0US3UbyIlAh\nYkpQAcD0kGCJLn64izlKRJom++Apx2s2yjcliJd/gwwUsB1JtfHNQb51S3Gc\nGn+0b70inpaaOwayFmy2tFj6rbvhf5yJKhBajXvGBIAO22pV17MBcHmUKSbT\nPnVllyQxjNFTS8QqYTFPN5SvEy6zG1hmeeGsZXuY06XWcZNYhtpHeMkou37M\nxK6VfD6ZZZLBv9oDtyY+kg2raSz8mAHvwfnI0drMLwS06zTwuYtFB0Op9HTI\nw2qpOajDrg0bu5qdJ50jAuvKvw2QYJhsR/XhYfzY8RNUka9AbRM4duadWNMu\nW590XRlUwChfPzq4CBfMs4tPKA2Bl9/ctTvrWIo+1McGhszVxOhxqn5RRi0S\nvBmYaoXCgCb8mJAepYtCqVgfTlD4CbttOSd6pnuuWseEYSxskixDSxPiYyF1\nwxkhINEMQeTiCiJ1CY33AEt1t/XGs6QU4gxmP0p/5nd8aVm6GDzk+koDpp0X\nrBmgow2mSrehn102slvcjU1ffOYPPkO7V4NUXon/+txHNwGppRNZO/SA0SSe\nu+dtDjs2jgr5/g+fYBCLcoXPU/X7glPVpeAg6I0mxl6xHxbnC836zK6Ymx+l\neT+C\r\n=LqKb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICikSe6IBMqka+UBzXtU4FhcASRXeYIFxvq7Fk09sngsAiAsTAoiLOCswX5sGavCaKniP1gm+7MNPgdX52COAIPRnw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.90ff8057.0_1626703698075_0.6869129186397323"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.dd7b75d1.0":{"name":"@material/mwc-list","version":"0.23.0-canary.dd7b75d1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.4d95812f9.0","@material/dom":"=12.0.0-canary.4d95812f9.0","@material/list":"=12.0.0-canary.4d95812f9.0","@material/mwc-base":"0.23.0-canary.dd7b75d1.0","@material/mwc-checkbox":"0.23.0-canary.dd7b75d1.0","@material/mwc-radio":"0.23.0-canary.dd7b75d1.0","@material/mwc-ripple":"0.23.0-canary.dd7b75d1.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.4d95812f9.0","@material/feature-targeting":"=12.0.0-canary.4d95812f9.0","@material/mwc-icon":"0.23.0-canary.dd7b75d1.0","@material/mwc-menu":"0.23.0-canary.dd7b75d1.0","@material/ripple":"=12.0.0-canary.4d95812f9.0","@material/rtl":"=12.0.0-canary.4d95812f9.0","@material/theme":"=12.0.0-canary.4d95812f9.0","@material/typography":"=12.0.0-canary.4d95812f9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b0752e4552aba84ad89d4eafc1a2a995bbfa0607","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b0752e4552aba84ad89d4eafc1a2a995bbfa0607/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.dd7b75d1.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-7QLbmkFigrGmXl+wXkooOAeYrvRi4Neynj0EkicPTFGA3rNJlPvE2vqLAq4OgWTJ9AiG3jGGgFZWoc8rCRxpmg==","shasum":"b890a142f442202d49d87126525cd826457c49d4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.dd7b75d1.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9buVCRA9TVsSAnZWagAAjO8P/1syI/5c/mngE9c68UL7\nozY7Ein8Ktiezm/FFBe4AkN0W4V0zV9Uomkt77vI/+CPymHQ//t9V2EJMrMk\nFhgvcSxFoQZUkM2jwJZqjcmELRmmJBiLaR1hsTiZ47xyPQy0MbvGZrY7OZPO\niUSKgOBFUjI6/DFs7YonV2BVMF7zqTr5Y5bN7HsPkhof/8I9vBLV9zNU/qsZ\nIsJM8/KCHVYNHAvREfJiu4rPqRbeFg2sSoiDBTY41T6UZE5LENeRN7vevAvD\ngTunZQkgVIYg/al9gyCmIBAVHZ/HDkdzY+YPCDJ8tHDVYDb55e3lc+KjCtHy\ngFqPO3H4mG+o83zH5njrU4cKCE9sRlE7Et1QXPyxWd1YBwgu005LZ5XUVFAn\nHghT/JyTls08/pt2mZM+anB3tBiag9OcSR80CU+X7oyqdozbuj2Ku2ZL/2YD\n1DY0yl4xc4ONwnTNY0/18MqTAyEET6YAYiNB0zPwAA4Gz0YJs7LbS4ipBd+p\noUl1BSxvfbMAzsgBG+9x3dCQh9ixpe6vOZb+mfz3EiDAmgnBAiXTdPwG0DGz\n8iC8Fkf2MSNgr+rO02CVeF4+P0OvJLAdzrIMLeGMAd04mUqlbAte14kWav5d\niz8OqnNU3AsHuu5kJVC0Ox/x7thxYUeSOfY4YM6CJqHYpc4nSWuucAN1ojTR\nZ+4Q\r\n=Z/C7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGFccQzOep4wS7MH9vNJ4Xx8wJjTLuQRTQJCWmcBfeHiAiAzlZ8ZH+uS/DjmSE0rQO4Yc7csiyjAj7wgY/uJR+crFg=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.dd7b75d1.0_1626717076828_0.7256175362913238"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.104debd5.0":{"name":"@material/mwc-list","version":"0.23.0-canary.104debd5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.38d1846cc.0","@material/dom":"=12.0.0-canary.38d1846cc.0","@material/list":"=12.0.0-canary.38d1846cc.0","@material/mwc-base":"0.23.0-canary.104debd5.0","@material/mwc-checkbox":"0.23.0-canary.104debd5.0","@material/mwc-radio":"0.23.0-canary.104debd5.0","@material/mwc-ripple":"0.23.0-canary.104debd5.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.38d1846cc.0","@material/feature-targeting":"=12.0.0-canary.38d1846cc.0","@material/mwc-icon":"0.23.0-canary.104debd5.0","@material/mwc-menu":"0.23.0-canary.104debd5.0","@material/ripple":"=12.0.0-canary.38d1846cc.0","@material/rtl":"=12.0.0-canary.38d1846cc.0","@material/theme":"=12.0.0-canary.38d1846cc.0","@material/typography":"=12.0.0-canary.38d1846cc.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"9dde76584b6e4258f93d65b54a1f9695d2dddb1a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9dde76584b6e4258f93d65b54a1f9695d2dddb1a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.104debd5.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-N5mULzKvCPbiOBFe7ijoBqL6w5xN0hTzTluzRWpP9PiXAf9pBZ7ALGzVkxnmV4qVb6jVhTYaAjwyhDIPAKcPbQ==","shasum":"b3b70a85657aaadf286b66c2aff8537ac211b461","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.104debd5.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9gKPCRA9TVsSAnZWagAAaLMP/RBi79Yqvp1mizQP8AA8\n+frtmdqSoPieLUB2tCkIHol8f8aLhIgtqRgXY+OI67CPtsHMpeIMRsObAwr3\nFlR1r7NwOTX5pfpOpk1C+NoxKtArD70FTCG+4JaunLmkIDCi0tgzZfNk9JNi\nxQYgmBICJ+aAzhO83NZFbtv+fXZO9Mzj6+Ufr8lJPmudf8byUXRxNuqmb/gC\nOaNu/VRNwDMpEYIoKRtErry8pDRjnFQV6dmhQOGTVBaE9Gs0Qv8NZp9nfhKH\nAw+hhACHdlPaVfNSoSFctudQ0THq11XTVUXja5hWYz7jIQLx4rXn4CG8QxwR\nmgdD9jnL6r0YFU+XrbYNvzrIg+jVgTXxmiSzEo8raWsfrIpombr2l1bh1p9I\n+RdUK/GRUhvEDaokGGx3aNfFRiC9ECmv/FGXYRg76strPSBX6zUoCwx3dUSX\nloBI7CN80U9GY+rAfpOMqZh+11285mz+mNJE0f+P7QWZS8u7ECocfhOLUzwW\nLzXK0VPGxMonVgN1cUerPFMJ8seZqxxGZxnHS07BhqBTyP41lAS0QUGBbMXK\nGSnx1VxU+w+ODjp25NJiDKMPQA4lNwww6zOXgG11kwy+5irM4fzcMafzDXgG\njN3+kxIwk5X43RzvRWWA7q8HzO0sh46Dgzl1tUr9pOrx+2nkgXOSKQ/QJZET\n8Wbd\r\n=h0mU\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1hQqBFISaAwDPzuK/WZKXEIZ3pdJ/mCIylvjqozA34gIhAKobkfpytlG+/WteEqufjibO/cUKyDfywgMXwMSY5laH"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.104debd5.0_1626735247357_0.7565407576317735"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.4612705d.0":{"name":"@material/mwc-list","version":"0.23.0-canary.4612705d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.38d1846cc.0","@material/dom":"=12.0.0-canary.38d1846cc.0","@material/list":"=12.0.0-canary.38d1846cc.0","@material/mwc-base":"0.23.0-canary.4612705d.0","@material/mwc-checkbox":"0.23.0-canary.4612705d.0","@material/mwc-radio":"0.23.0-canary.4612705d.0","@material/mwc-ripple":"0.23.0-canary.4612705d.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.38d1846cc.0","@material/feature-targeting":"=12.0.0-canary.38d1846cc.0","@material/mwc-icon":"0.23.0-canary.4612705d.0","@material/mwc-menu":"0.23.0-canary.4612705d.0","@material/ripple":"=12.0.0-canary.38d1846cc.0","@material/rtl":"=12.0.0-canary.38d1846cc.0","@material/theme":"=12.0.0-canary.38d1846cc.0","@material/typography":"=12.0.0-canary.38d1846cc.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"28f0176f44158c2fa7246b69d5737a09425a6e4f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/28f0176f44158c2fa7246b69d5737a09425a6e4f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.4612705d.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-Yd9dQ1NfObUQWT54B98T301ISX32SvBChCbieZSwRWUUXyD5uBk9r3hR5D6HoKs7Oa7KzLxIJLngoB6ouIuIWQ==","shasum":"e71ccdba4d1bd5890bec1743f98e7165f4d99d9d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.4612705d.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg9vQ3CRA9TVsSAnZWagAAHfwP/0jubLxLh5EQ5D6id3TH\nKd8nKvcSZY13JA9LbfInWkSfviCsJ5bWp4+X/cRukFFY7qpdP0X88z6fCgVU\nhJq8tNhY2BsZm8G/7knVF8xk7kdmTCwijG30MHrSJQOey5FwNTZh230m+hmJ\niY7ApSBfDkqKU2NAPe760UjSUs1EPgSWhBXIOrBesT2iENHi4Paun5siO8Kj\nTaq+PV4W09vL+Rv5k3s4DJHoks0AgyVBfSF9767GRJJaHcLGidBp/soXo27g\nv1Axvhow8pHgXj5QIoup5LS4gEl2McZV4QrgNm51WWtxvJQVZvUBK1swqRxT\n1EfDBsUeEbAwOef3sa1NW6WO8/3NPv7pdQ8JFwMPdywYk3vfS3NrtMxwlSuw\n9DB4PxrgS4gGsuF7af2FJ3QhwzoDhC+7keixvsyirOH1KfDeYjntZM9UZ/V1\n/+94fHgKz9WGZCFpvHBuhgHfUPbpFq7efI+VaEHJiW0YzL0Q9aD2pdx41P7G\nYCJ5neHDR1b/84JWIibI2sj3ZQEoI7beEs8rfE66XZhieP4dCeqma/XjO3oF\nda4lcjrGhtFuOxvqkjq7/jm2T6HRk59H44qnuySMmRhKwBZXFKPrzTLGSES6\nigrGZwv8PEYFVA7A7gCuIS8FyvJtcCRWf+GUn5GISigbkEfIy2Fgznsft455\nQmN6\r\n=S/VR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEdXvP0ch9Ku+s+2rE5k+F7gisTMtSgPjOkNULVMgibfAiEA2YDy5e782XBC1FP8adnP52/DUo0CyKBJkdDHNJMXYTE="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.4612705d.0_1626797111303_0.4185289421074492"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.b36502a2.0":{"name":"@material/mwc-list","version":"0.23.0-canary.b36502a2.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.6b0442278.0","@material/dom":"=12.0.0-canary.6b0442278.0","@material/list":"=12.0.0-canary.6b0442278.0","@material/mwc-base":"0.23.0-canary.b36502a2.0","@material/mwc-checkbox":"0.23.0-canary.b36502a2.0","@material/mwc-radio":"0.23.0-canary.b36502a2.0","@material/mwc-ripple":"0.23.0-canary.b36502a2.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.6b0442278.0","@material/feature-targeting":"=12.0.0-canary.6b0442278.0","@material/mwc-icon":"0.23.0-canary.b36502a2.0","@material/mwc-menu":"0.23.0-canary.b36502a2.0","@material/ripple":"=12.0.0-canary.6b0442278.0","@material/rtl":"=12.0.0-canary.6b0442278.0","@material/theme":"=12.0.0-canary.6b0442278.0","@material/typography":"=12.0.0-canary.6b0442278.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"1df0a9b6912d747311691d2320eb16519bf8c660","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1df0a9b6912d747311691d2320eb16519bf8c660/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.b36502a2.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-JiofmCHvyyJ48tD3k+rqu5IbgElYUN712WytyUey3Cnk1V1Oi7tmrHtUooXWSTnahFuyXOuaa19gU1mj+BCpNg==","shasum":"e921de020992451912f1efb8354ccd57b3f9bc02","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.b36502a2.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+KEeCRA9TVsSAnZWagAAVFwQAIkVBpOB1HcHxJkfDBGC\nqs6w9giGswAYkQ39lTe6tEVWTFLrALFUpCHaTKfz0QskCZmp4L1sF/648fVe\neyvTYZNsO4U2YF0oRX2frdkHAGTsarWYTLUfmPCxqPrKjUf71fg/L7bh1Bee\nVa9N42+ukdGMf3nVe5JlWSTpqpDg3/YNVZ3KO0ysTQpXDpabT80rrnn5IzfJ\nO8SqsUOdhHbn3Ppkr50d1gM/92bnj2YWg+GG20Nr7kmY6jUmPYnuDHZLsb1Q\ng4a8CaCL2hbXzAlIPK0fwLtXUhZmh/yv094Qgy5bRnbyzlTTmrJBK1ihrhWD\nfHXvOtudqfnxQ4YYMWonfnUROojUs/NCHvxemAsChEa2Mq/53OOQzIkEAaW7\nwhtmnrjVaTRMKFTGoqzbbWtsPc24GU+4NIhnuvnK5te3rXM/lnHlfj9loVIL\ne1SYhwEILd0XBj9r1Qunlvf27EDIZsGn7/GlgCVj+iEAy6EAV1H79CbnlEiM\ns4XtRfMLzPhJ/xBeaJ6F7MY7cCYzt5ltHoWvVp47x7foii6WWJO1R5YiyqYe\nMXAwkhm+OlotTPdmUOyv17ru4OZMN0VU6HUoKJKj9hgF3pGqc/k7227LKF00\nDiSTi42V4F4NAHc15sVQm4WXJVi8nmujepiMJPBYt/S4xQqEQt5Spw6mbb0o\ntluF\r\n=1E3o\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFzoRwPYBn+mE0kp0VkEuedd6Ix27jfELnkxSggCOsf2AiEAn60ao4bLDmHEzPGnUTW4pyv+xjaxuKy/Vg1lGDkZy2w="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.b36502a2.0_1626906909930_0.22031101837770284"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.2c392ab3.0":{"name":"@material/mwc-list","version":"0.23.0-canary.2c392ab3.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.6b0442278.0","@material/dom":"=12.0.0-canary.6b0442278.0","@material/list":"=12.0.0-canary.6b0442278.0","@material/mwc-base":"0.23.0-canary.2c392ab3.0","@material/mwc-checkbox":"0.23.0-canary.2c392ab3.0","@material/mwc-radio":"0.23.0-canary.2c392ab3.0","@material/mwc-ripple":"0.23.0-canary.2c392ab3.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.6b0442278.0","@material/feature-targeting":"=12.0.0-canary.6b0442278.0","@material/mwc-icon":"0.23.0-canary.2c392ab3.0","@material/mwc-menu":"0.23.0-canary.2c392ab3.0","@material/ripple":"=12.0.0-canary.6b0442278.0","@material/rtl":"=12.0.0-canary.6b0442278.0","@material/theme":"=12.0.0-canary.6b0442278.0","@material/typography":"=12.0.0-canary.6b0442278.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"83a61c9efee1610d42af318683fe4985effae0df","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/83a61c9efee1610d42af318683fe4985effae0df/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.2c392ab3.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-Y98MJ0U3RuUweGOD2gMJjApaMsbkJkhjcd0d8ky2iGT8Xad3/Qp3TO7oFZ7SH3/NzBiEooiAU4oUZZVqfNSdoA==","shasum":"161d62310f3d67c793914857e4a944efdfa132ca","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.2c392ab3.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+YZoCRA9TVsSAnZWagAAJ2EP/3bpM6+c7BCDhlaze1hr\n0loHA43zRMARxOSKXrKALffX02BqqyygYGxWeuukeztM+R9AU0EXdQpgkBY0\ncqrGW2vi0RFyEiOeFYj6fdqWPx93gbB0n8tWovI/uPGOT8SqzptCHN8ZLHA8\n6yCHBkR02i8rM5JTHErupIl2PkdJzVHPB2m8qydCnD0k/lQKR2fTqB2bht1w\nkydRtm3mrNs7QiWB0mCaMx90iCb7GICJl+JWGNCNVYPTgPrNlPKSp6U9dsMW\nQNB9c0IuCAVPik6zxRuCxr9liL09ZegBkBDy/I7GnglIr5HBNPoSGZxCRrz+\n+a+Xx7jXvrGzPTwl2VLF83AjryfELIFriD/BS4vKaGIoBCPlChxB19DRlhhA\n2iJrIPl4ndRVSDbriVLGnAciN0FS8r0q0Ml5Bq/XpTl/XxwtWT5YUyutearA\nuXT+pSUMq82Sb7l+s7SrSMHDE6/GaPVlHvihsQ73Suv6gdT2LQuv47WNy/rq\nQtmX8A7jIGmJoJsV2Gy7cjC4XqynvZ4fmHjXxiRE0z5vp/6s8k0/du+QvfJz\nQfwhJdSvgAKJXB0eootJbbAk+AU4M2Gru+nBxroN0agVCDrAwwwl/sZRSQEE\nmnzBi+ywdyWjQ8YorpebqfIwefXyfuWeMuB6ltWbFqiCwFAd8pEQjZ8w3lgo\nZQje\r\n=SPFt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFyJmATCpeQB51O+iw8aqoUyu1ig979rbdn/FdpeeHHgIhANIuE4FizTjUOLIVaaPR0jIvi19Q2GC7x/nQjrjEBFI8"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.2c392ab3.0_1626965608625_0.39974545545538587"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.e8bac95a.0":{"name":"@material/mwc-list","version":"0.23.0-canary.e8bac95a.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.5f00e454a.0","@material/dom":"=12.0.0-canary.5f00e454a.0","@material/list":"=12.0.0-canary.5f00e454a.0","@material/mwc-base":"0.23.0-canary.e8bac95a.0","@material/mwc-checkbox":"0.23.0-canary.e8bac95a.0","@material/mwc-radio":"0.23.0-canary.e8bac95a.0","@material/mwc-ripple":"0.23.0-canary.e8bac95a.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.5f00e454a.0","@material/feature-targeting":"=12.0.0-canary.5f00e454a.0","@material/mwc-icon":"0.23.0-canary.e8bac95a.0","@material/mwc-menu":"0.23.0-canary.e8bac95a.0","@material/ripple":"=12.0.0-canary.5f00e454a.0","@material/rtl":"=12.0.0-canary.5f00e454a.0","@material/theme":"=12.0.0-canary.5f00e454a.0","@material/typography":"=12.0.0-canary.5f00e454a.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"2215253d0031fb9db27cec4c40894bd549b72930","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2215253d0031fb9db27cec4c40894bd549b72930/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.e8bac95a.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-GX4idjOACm8wRY/dUKevwyYWx7r06EcbkdO2W5/mwLb1g/9M1wuSMclOy4X1hW9Rbp8hgEiQCo3RdjcEbl0A0g==","shasum":"86f643ad2d7fdf241b0b582c6c3be1542023308e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.e8bac95a.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+b6kCRA9TVsSAnZWagAAl4QP/3ziyzgpmitCZ2vXY+pK\nO4tBSCg6wbm0Iu/0PpX6D0LKGjbJAIgAe+ifnkwIIlmwBhjUgTJaHTd5Z7jI\ntMGRaxE1Y6Tyj1vxZ5MyTqVRdoB6cZP/7OqhfTT2AMHPCGHUU2BTh/n1iKYn\nWeFA2XFnGix4zDT+Yz0he9I7ru9gONeivY4RA2WTGlpwGlfzWuzpPwaoGZrO\nw9bRw+C+j7A5k6foJhF5CpLH4X1izWqFXUY/Pzcp6JuAcuiZQa9JpA7IG5LL\nS/tnrw6nEspdwm1nPDxf87GM14pcvOvBzqY9p+eJA/POBgBOa/HKR/7Eunx5\nUxIY8hao9dp7YnqVvLLoXjY1XZWoG/vtsTV8+4zYz57YGYwgSuLgtqfHrmxt\nt7dHhzEW8CSh3YDa1Bqg+CKwpGfzuny3EWR9mc2gfcK7qHN98ppBm/eyj4YO\nq8HbQ3Gew7ltCZsKlOu7Jea/bPYTP0+3QU5d19YGZIvpbUX/+s6F9iMLSRZQ\nNDRQhMJEscbgg+QrXku5vUs5j47vF1ayG2TEKU+/LBHw3pWjf+mx6oP/OPz5\nIBuSaQdGRR+bmKtdd9YNVuC2vqmnEbdawVegAGV8I3RXd1rHvZLrMwPv154k\nN4C7kZEIviltu69ULDfqwQKtK2pNVcqGS9WhQZGgOPpZKQOExCqJ58Ux6Pdj\nJJ+i\r\n=YJEo\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDeD/QBkKDEIlmwSPKlWxQP/tp7lxP9+TuyvdWy50D8AwIgVt+qPtA05621sXh68p0lumabTdruRofgWC3OvCONph0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.e8bac95a.0_1626980004164_0.07863280129811945"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.38f29f8f.0":{"name":"@material/mwc-list","version":"0.23.0-canary.38f29f8f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.90e08fc6b.0","@material/dom":"=12.0.0-canary.90e08fc6b.0","@material/list":"=12.0.0-canary.90e08fc6b.0","@material/mwc-base":"0.23.0-canary.38f29f8f.0","@material/mwc-checkbox":"0.23.0-canary.38f29f8f.0","@material/mwc-radio":"0.23.0-canary.38f29f8f.0","@material/mwc-ripple":"0.23.0-canary.38f29f8f.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.90e08fc6b.0","@material/feature-targeting":"=12.0.0-canary.90e08fc6b.0","@material/mwc-icon":"0.23.0-canary.38f29f8f.0","@material/mwc-menu":"0.23.0-canary.38f29f8f.0","@material/ripple":"=12.0.0-canary.90e08fc6b.0","@material/rtl":"=12.0.0-canary.90e08fc6b.0","@material/theme":"=12.0.0-canary.90e08fc6b.0","@material/typography":"=12.0.0-canary.90e08fc6b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"484fc84b540f757ad561dbea442c8566694496a9","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/484fc84b540f757ad561dbea442c8566694496a9/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.38f29f8f.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-TNezu9ba0Xq7zlSapXt5A0WYW+lmKFh1bS5h9PukT8bS9D2AlFejb289YjJVvFlXFXqKYnGeSq9+Wbt9eUDrQA==","shasum":"4e9468ce6a1889637cce4ede103ea3b33256f653","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.38f29f8f.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+weDCRA9TVsSAnZWagAAnVQQAJtYzTpVl9qvnXUIfj4j\nAcy0yoPVQLUqRgGfUlnALDy9QdCMDMtX2WOVQupAHJvp5WOqP65Pa+atiHLy\n+MOsjV1xm3cAAFUPHZyqayNtRdBR59vUlTXelPGjFQUobDFpGYLFjpRlAoTB\nyMP4MIzPbPRzXKj372bgd4RuiYLoMtCGNbsLDXnj7QV0M3vRTLvjhjqJkwNl\n4Ioztd2DMiLhb0O5X63Kh7J5HW3LTUKiXoAGRUtaJY5+ZUArr6YUDo+69c99\n03WgemB8Y6JswAMo8AmnPUZ2vk9tRzD7t7byCnhVax7FJgr8ywNcdKrLuaKC\nVYmlR2cFzwumwrz/+D2w9ZFAGFixYbl3rayXGTwGeXs6CcWw90l3AH+LSckg\nMLHsWoCmmSL0S+jMTud6wBm9OKnT/n1Lw9xB7CPsSPu5ve7JwA7Tb00fLuiZ\n0J4ojmr53NM8cVGpQpXHEf3DSUXejwd6BFgB9sS+TfAO2eaU5TfPBbE/waQA\nTEkG3/1MtF9N3DLg8riniKLSBmu9z2piLfHiXGPr/WER3yT+bCTQlINVixvH\nn8hWnj2Jl3DxLsjeSNeNg+Y1XBKyykPJpYdcabkdLXyamuiVvs31pFtSnMgS\nMEJf5R7Vhpcb177J0ANFeU8/GzxozU4MgoOzkozcQeNjWWzVg2g6laLV10eK\nsz/7\r\n=U6qP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDR31CY+KaqpjparrmU2nUSnjnC+XdiVd3l9OdSQAeOlAIgRxys0dfWVQbwMjDc+f5EIeGuL/joeiHUKwCxPu6eJpI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.38f29f8f.0_1627064195703_0.7505629949415349"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.e0693475.0":{"name":"@material/mwc-list","version":"0.23.0-canary.e0693475.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.90e08fc6b.0","@material/dom":"=12.0.0-canary.90e08fc6b.0","@material/list":"=12.0.0-canary.90e08fc6b.0","@material/mwc-base":"0.23.0-canary.e0693475.0","@material/mwc-checkbox":"0.23.0-canary.e0693475.0","@material/mwc-radio":"0.23.0-canary.e0693475.0","@material/mwc-ripple":"0.23.0-canary.e0693475.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.90e08fc6b.0","@material/feature-targeting":"=12.0.0-canary.90e08fc6b.0","@material/mwc-icon":"0.23.0-canary.e0693475.0","@material/mwc-menu":"0.23.0-canary.e0693475.0","@material/ripple":"=12.0.0-canary.90e08fc6b.0","@material/rtl":"=12.0.0-canary.90e08fc6b.0","@material/theme":"=12.0.0-canary.90e08fc6b.0","@material/typography":"=12.0.0-canary.90e08fc6b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dcaa39c4b4b0d5d5bda85df7a11ac1205f2fd669/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.e0693475.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-1tr2v+3iDB3X9KpIt0x25O6r1nivS8xxDGP+zgGzjldOCBp9gWTWIn/nAlsyIR2epUt4aox3kLZtKeD6anlMVw==","shasum":"0c65bd80adde18891707eeeea0a289bfd67a9ec6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.e0693475.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+xDtCRA9TVsSAnZWagAAjfMP/Ahe8X5/LuDdw852FeQP\nQjMP2fBaJ3XKN0QO/asuMrW2s3kpVFyARQfGjvxm603j/2r0vg2oS69okfCQ\nOZ9ADdDznDnjUk7T1z4WNjIJLp54ZnMHzZ4fsef2KNK4T/5iEINzktJhdDLF\nIojQPibIpyfreJGlE3Vg5Ly0QPXn+EzOFCzdGqRwTMuW1T4qB9bQZ7NuPwKM\nN2XlCE+XevAUdegTUea13hjCRV8MQX2rR7vXg+6QbLHKWdeVpnQjth+pPJ/H\ngvXMsiTnyx4LBrz/oHE4W18ljc/NWn6V1jGfGMiDBhww0IG6bGZndkSFOz7b\nCp7Re0mRb2hXISdEnDj5MhmDLFBdikHck3/dnN5WjGsbfqg0jS8zFACG1uGE\nJZGOINTHgh0y8WeTBr3Vn/j/erMflJHcZsSKuXJbObANNh3CYKXIPIo5xyTR\nhVa8Zk8MoV3cS+Ww06evHxwN4ubDLdXDvyOfxAkfRce+8HNYzj95tfKP4xA4\nrrb8OaQuQgBKqmvWGRGDiRILr3l15xjWSJfTvETWzY8wIxE4Bfq3cCf2imaF\nbAAqQ4ZDMVTHpozbNcPdUB9CMG2jxyGmctMLPWRHVlPtVHBr4ffSqtxmy1AC\nsoCO9pDjewVeZyJ7aU+/IlS6ZQiUritzVJLd8pG1u+v0scjlDEhr+0m4Kocv\nVowM\r\n=F0RO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDB9pr1Od+w3U7pPC+5bSybZizPtJMgCb6t0fTabjJRZwIhAI3n9Wx4Q2k+ja48cTDpb4UyZAXd4es1Fo7LTH7qBqKC"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.e0693475.0_1627066605269_0.2978823485845137"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.d595e030.0":{"name":"@material/mwc-list","version":"0.23.0-canary.d595e030.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.90e08fc6b.0","@material/dom":"=12.0.0-canary.90e08fc6b.0","@material/list":"=12.0.0-canary.90e08fc6b.0","@material/mwc-base":"0.23.0-canary.d595e030.0","@material/mwc-checkbox":"0.23.0-canary.d595e030.0","@material/mwc-radio":"0.23.0-canary.d595e030.0","@material/mwc-ripple":"0.23.0-canary.d595e030.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.90e08fc6b.0","@material/feature-targeting":"=12.0.0-canary.90e08fc6b.0","@material/mwc-icon":"0.23.0-canary.d595e030.0","@material/mwc-menu":"0.23.0-canary.d595e030.0","@material/ripple":"=12.0.0-canary.90e08fc6b.0","@material/rtl":"=12.0.0-canary.90e08fc6b.0","@material/theme":"=12.0.0-canary.90e08fc6b.0","@material/typography":"=12.0.0-canary.90e08fc6b.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"7c8056c080cfa8a28ca6e2a5511b4db50a604a87","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c8056c080cfa8a28ca6e2a5511b4db50a604a87/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.d595e030.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-xFRpUAKUH45xizdgQiVs6/VfTi/Z6aKHTHzDrmRbYRbge2KTTjHLhBukMtWg7cKnLmJP8YbvrhvOMUTHN3IRMg==","shasum":"19bbfe32f839121a7bf1c6f1bb4f9820641f1db5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.d595e030.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+yxZCRA9TVsSAnZWagAAdesP+gJ2l9qfxgOK4gK3YAiJ\n/w8/IFkGSQGLS06TeOWoUWQVKXmo1pcxdlsy+GyR7Pa4oN+1Aae8J3uoCcr/\neLaneP+A2eWNLk0wwqXrV0if8aRNKAXELmAPJ0UlqPJksyRaXR4Vt2qPZzwm\nva1d+DUyrDWmXcRIKxqNy3qjm8atazJVKchDNDvgPb3U6zAmT7sPajrxWYHO\naj+Ti9Uo0jWBxEmiedq3cbndy/oafAqyxxnRf9hJMK2NoqNPbC4MgTBqoEpG\n4Aft4Y8BoC5cge8qBaiDovbuGgk1hLeMsnibHII+ofit4XOo8EUFuuOhp2g1\nSAl2Ojb6wosJDi+d7HC19o8/OKDr4sVZHvR86odepPGETfeHRi1udiJXF1L8\n1mPqwjYWgr/oNV+WxF76S3wrd+wAEbMKlXpsSGOKJ/gfJCjumFmVmilVbIx/\n1aNtnKRFDaj8NfK/+m/jOAuRAwcVPrXmwoxhwirCj0iWrIhNjoMSPBTqdvX+\nopZXVUr7pUYU8ishnk1OUCp9PJ//wR0ggJL1wGtMItbLhn0OJKSX0rOtEm/U\nBBXphCbPIA8BbciATCyawWTOQn0Wk/5F/kq5jeFUK6G2PnvLBwztbjASqLEx\nAUH5hnIj4mWZbbKFat3UuTRi89hMdk18bmgB7f/zxaCPi3w6nrtgO3QDTcw1\nll9S\r\n=5ZDz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAt3v5jSGcMrIp0NjpODEAPNjBDNIHTAUTfjrbIwgSanAiAhEkNW7940UBs0VMTlCHmrRKhsixG63VlMfQLTm2WsFA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.d595e030.0_1627073625560_0.6019797249693728"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.fe7cca31.0":{"name":"@material/mwc-list","version":"0.23.0-canary.fe7cca31.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.3f36ac75c.0","@material/dom":"=12.0.0-canary.3f36ac75c.0","@material/list":"=12.0.0-canary.3f36ac75c.0","@material/mwc-base":"0.23.0-canary.fe7cca31.0","@material/mwc-checkbox":"0.23.0-canary.fe7cca31.0","@material/mwc-radio":"0.23.0-canary.fe7cca31.0","@material/mwc-ripple":"0.23.0-canary.fe7cca31.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.3f36ac75c.0","@material/feature-targeting":"=12.0.0-canary.3f36ac75c.0","@material/mwc-icon":"0.23.0-canary.fe7cca31.0","@material/mwc-menu":"0.23.0-canary.fe7cca31.0","@material/ripple":"=12.0.0-canary.3f36ac75c.0","@material/rtl":"=12.0.0-canary.3f36ac75c.0","@material/theme":"=12.0.0-canary.3f36ac75c.0","@material/typography":"=12.0.0-canary.3f36ac75c.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"45bb0797db4a64851859f8894864015974863643","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/45bb0797db4a64851859f8894864015974863643/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.fe7cca31.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-0mp53Sf4EmKSuxFEAMhIywkPZZK16yPEduC9CiG1NClIsCbyUU68vBWV/eprT3T7pneIOKRSk0NjtQcRJmaeZg==","shasum":"05400e1d3e74dcd74a38acd229d1459366355d16","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.fe7cca31.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg+zs/CRA9TVsSAnZWagAAPJcP/iwFJoYDAXqRIKVUwztP\nS7N2Khrm8wfTgwwh9Yz+Tt1cwhS4D/Na3auGWz5OuDYsZ7sosojCSHy4XS+D\nxv0q7aHcMJ7xOdACvqbg/AGpEYRE+W+q0fDEL/rbtynHqgHnTJRlYg/xXA+p\ncFSHboKh05C7r66yMxzEXyW8a2dX0FiQl2MU+kpJhuRgMEysD64dZHF3WPA6\n54se9UTt0oRvmqeW0Qca5WMo+7CQW4aAlwXNYtCv8Hf58mS8nvSnj5gRBMGL\n2Vok3BGvjpqxBfPNSx+SRm5voNDCedRl6FBLQ/94I9ul+cd9gENadK/f+8N7\na2i+u097JOo6iWQv86FlL7Q9FEpLDlTiQJT9KsTqFm8dELB52x5M2+1kehQP\nuTJq3pGcKe5RxJCpaGHOyxo3oE9sSk8Mi/G3nqfVIzT3lWFXd52Q4OCKDEbI\nT1XyArpIMvwA44fFM4YYfSdpUMEsZLVJR9qYIn/74F69lJI9DLiQmvsa0T1B\nOpIid2+H5S3QBqu2kLgi5ouTTQN27MlzcMxU0kE3a5xXedWkYvc9jbtM/7kQ\n72YQpp1j3fdRf22XxJ/yV+rkY5OKjvAnE1+MtcF+Z64nKLgRcO7AgizKo249\nko7XUclMH5PAReSAq8es79nPg7rzKsUA6YqkpWKXNCVUH6a+38VFjNIEsk+g\nLVAC\r\n=bm3x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB8nhEUDwTeNjS3l/dHWoM2A65FpUDXKTYCMk4sXYpK4AiAIAXwIlNM/Xyv2HtRLXCq/HID0ImtojP3neUI3EuEuzA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.fe7cca31.0_1627077439377_0.8881825425694361"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.fd9da483.0":{"name":"@material/mwc-list","version":"0.23.0-canary.fd9da483.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.3f36ac75c.0","@material/dom":"=12.0.0-canary.3f36ac75c.0","@material/list":"=12.0.0-canary.3f36ac75c.0","@material/mwc-base":"0.23.0-canary.fd9da483.0","@material/mwc-checkbox":"0.23.0-canary.fd9da483.0","@material/mwc-radio":"0.23.0-canary.fd9da483.0","@material/mwc-ripple":"0.23.0-canary.fd9da483.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.3f36ac75c.0","@material/feature-targeting":"=12.0.0-canary.3f36ac75c.0","@material/mwc-icon":"0.23.0-canary.fd9da483.0","@material/mwc-menu":"0.23.0-canary.fd9da483.0","@material/ripple":"=12.0.0-canary.3f36ac75c.0","@material/rtl":"=12.0.0-canary.3f36ac75c.0","@material/theme":"=12.0.0-canary.3f36ac75c.0","@material/typography":"=12.0.0-canary.3f36ac75c.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fbed5ae8e9a1f66ef1cd5e83dcb0db11c6ea3c01/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.fd9da483.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-11gF0KjTfWvQf9HYULDDQLaGUubp56qpD6DKki6O9cWl/oNE7xd58tqvKM5dBdGE1VHGxznaAXt7gpKEjEGISA==","shasum":"9dbee406fbcfaf55c814bde64d31e15a8d574688","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.fd9da483.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/yhKCRA9TVsSAnZWagAAJmcP/2qPhwJopxnhXrZRNU7Y\n1c4zvonMxWGO/JDShJoyFWFYnb55tDuEIE4wYYjuKAejQUJS/qeLBnPQufqn\nm1B5PXespCtAkg6hlzT0k7MalmoSviaA0KrAdU8V0P7tEUPRiz8+JAC4t7H5\nJyNJ6relNVErGxCNlZZDQSk3p4yC+OUxLyJljbex8A4oa8EF4lvk1+AWJQj6\ny2ENcfDwZ/tIsQti4NW/z1EMWJfAL0rqZhv3QjzSQzKLFcEKT28e3SUGKClK\nO1ie4i4kP2x/JpfRpwFP9dRm9JgG5Yvy/YclErqiAQ+icsEQGRllxfkfvWW0\nHrz+d96udUDoLbqPBfqHA8yL6mzJ4u2aXKiRjSM1RsJbONbLhB/T7hti1yud\naNacVkst5153sqMw2HBzLC49SSNHHZmuQWg0k4DsT+p15yTh1V+1w6MrUjWU\nlOrTM8e/3OJJqzd02dWTO60rnKXTChVpt7Sy1Fk/iYGJdBLqRw4uPbOnVJxV\nhcQtO3s4wv3PgsnMlQRyErJZUolwt2u+9ugxM7eO1ltw3DyxmZo2/6F2HLdr\ngTP1jjQZVItk9c7Jpq7N4ALGDB2WwXOyrrFyhw1NMR0qsrMyv5OKu1NDW+BF\nJt93HBk96JSas3G9lwy3A+j6WusFr1O2wp9PTxvO7eM+n3mQXtw8xFAgxi5I\nsU/m\r\n=RbTb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDEbK0HXHbbpF5zweNtMBoPUyUzGTSE4PIwEB4TuTCWJAiA+O4pFperti1+HmN0A0MenkVmg08epxn93L4tmqxeMTQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.fd9da483.0_1627334730437_0.38629849627036306"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.8a4c7e06.0":{"name":"@material/mwc-list","version":"0.23.0-canary.8a4c7e06.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.3f36ac75c.0","@material/dom":"=12.0.0-canary.3f36ac75c.0","@material/list":"=12.0.0-canary.3f36ac75c.0","@material/mwc-base":"0.23.0-canary.8a4c7e06.0","@material/mwc-checkbox":"0.23.0-canary.8a4c7e06.0","@material/mwc-radio":"0.23.0-canary.8a4c7e06.0","@material/mwc-ripple":"0.23.0-canary.8a4c7e06.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.3f36ac75c.0","@material/feature-targeting":"=12.0.0-canary.3f36ac75c.0","@material/mwc-icon":"0.23.0-canary.8a4c7e06.0","@material/mwc-menu":"0.23.0-canary.8a4c7e06.0","@material/ripple":"=12.0.0-canary.3f36ac75c.0","@material/rtl":"=12.0.0-canary.3f36ac75c.0","@material/theme":"=12.0.0-canary.3f36ac75c.0","@material/typography":"=12.0.0-canary.3f36ac75c.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c98d35e959f2149e2a4ca8c8a4c5a7ad3070670/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.8a4c7e06.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-5B62L/ZQuznDNJLu6kZQJIv4Bzau/alueSUNULJLEA/ssn3ZGRnLV/FAMYx4E94Ihz4itkGDCX3J9oWJHUXn0A==","shasum":"f52db8ba5e99a825c012f60517252a78070f5e07","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.8a4c7e06.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg/zrUCRA9TVsSAnZWagAA0sQP/1v/wV/LvjyFM8HL2ZaC\ne2AwA+Xq2H97Mz6VJ7VRT+KOrItqMy2SfdBAft4Eshq5ISds66lN/abeWD/b\nDjZH/NZAjQTgFInrMoh9GIAQxz1tRWf7rfQvbnvBgP2x/bs8krsStamzM28O\nAHmwp8/yoOkY/pIdvxJKgkg5gT+rvJO/uC29mXZ185fxxOJuiA6Su7487H5j\nk9q4+I6Q8GyHVK1sFZ66l4Ss+URj95wNWEIIogGaYOgNrLVdO37OOSUhwlSC\nVH+Xtm5T6Jk5H2T3hOA5wEpgokJD138BcD7Gng/nTlMrGnAOjjpSfdisuDru\n9X59pEjtodW/jh+8Z5qbIuK46wCU2v1h+Bou44FMavROW6ujHjYJWhh07Wwa\nF5fEekK5/4mrUfuii3CEZSWpUQLdzepya6Nrj3bT2az/C9HImkpoluSnaDoB\nqziLBoWp3ECJx0sGrOo2I4o7DpMJwn9DD5ifRAf13Ph9XiYfTxYioipdxdZD\nKITDvWlS7bz9kav0ttPo1qPGyUjrZStNuzDwoAUYWafpa2njghwR5vmo08p0\nj36FOpUaXvBtnZg5Numdbp0OV08vYEUYRjtX7PGGScOcmxrgb1urQxSyvT0g\n/2U7FOigmQ4gS1PAnj7ttUO0ZKGb694o2C/lYnGKnx7Kt5IEBW4Bw+EMI3tA\n7Gao\r\n=HpdR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCAjkVGkkTo1NoDRNswq+u6XcHvTeTevMn7YzWf1d8SEAIhANHW2tn9pK9gsU3J8yGBzLVaj09z2mKHhHgc/EtTgGVI"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.8a4c7e06.0_1627339476355_0.8351913057830913"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.5b395fd1.0":{"name":"@material/mwc-list","version":"0.23.0-canary.5b395fd1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.3f36ac75c.0","@material/dom":"=12.0.0-canary.3f36ac75c.0","@material/list":"=12.0.0-canary.3f36ac75c.0","@material/mwc-base":"0.23.0-canary.5b395fd1.0","@material/mwc-checkbox":"0.23.0-canary.5b395fd1.0","@material/mwc-radio":"0.23.0-canary.5b395fd1.0","@material/mwc-ripple":"0.23.0-canary.5b395fd1.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.3f36ac75c.0","@material/feature-targeting":"=12.0.0-canary.3f36ac75c.0","@material/mwc-icon":"0.23.0-canary.5b395fd1.0","@material/mwc-menu":"0.23.0-canary.5b395fd1.0","@material/ripple":"=12.0.0-canary.3f36ac75c.0","@material/rtl":"=12.0.0-canary.3f36ac75c.0","@material/theme":"=12.0.0-canary.3f36ac75c.0","@material/typography":"=12.0.0-canary.3f36ac75c.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"49947c20a93de615b923efcb7d30a23250ea6dbf","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/49947c20a93de615b923efcb7d30a23250ea6dbf/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.5b395fd1.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-cxMpUtOHdZ3XR7EWcUBlPdd3uEv1UnGKBtFX6O2Air2yTZY8u4nCGa6cwE8tcOmi7uYRCBT7f0roFi0gdgIhGQ==","shasum":"cc69cea286e6960334f847bf5e85557bc39df6e8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.5b395fd1.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAI51CRA9TVsSAnZWagAAUEcQAI9n1xvvCYRQhW1r+CNY\nXaOWFz+LGUpetU8bedIVdUvjO4mQ6HrxRv0C/BvlpvDytSgOnYyBjJfDz83W\nNS64v9NNuFWGZZpZIzjKPQZdiR/qbTRAp+Uhy1k1O4RCzmdQwEEgwR+wPj3h\nhYI+lJjmzNWWAi+laCK3KNP3fMEMY+QUdco2VXiM2xmLrZFLUd8RniE82Dmn\nnhpnTxkoNcqvll4KALHyKBxdUh78fi9LrdXNd6U5kl0pBW1Xck+QWKkyqeJm\nnOHTrEAjv46GRWKRdO8m2d9UWmAxhAA4byvsHupAOEssicCtf9wExd6aHkVW\n8LfFvLExgN02mEmckbFKO0VOwdZKjSL9AI+EtVwpObt6ZdVOTcWYRSuxPxVn\no3fyHx7Um0Av/RkuR+PC2xn8FX5RQy16MhX0tedTkv5V5bIAmO8a6vuliUL6\nvHRtCBuOohtAMQHrR3UzOZdpQGQTz8Gcx2u5g4rMqWVgZiY3XLkM1wTW6xT2\nLXa2zwqaFi7ummQuYH/+2nNJCVhUsPuA1JwMscXcHu7DvQ41ML99h+RBvC1w\n5L09awSG9QshRLU3Clu2UhBBc2wlbjpLoOSvY8/1JGbxOUP2phCnauFCRusJ\n5SegbnQ/4hiHPz/Sltz9Cbp644HPcgqUTfDstYYwO1YjuTepLwMSpiQiywEy\n7cW6\r\n=3qqz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxSISYoyzj4emE+d/WP3ZyoO5jW5d26zshOaP8XBnDzgIgPGiAVCMx/n7G/koZJsx8jJpOrp3dUNgA/bJFgwuH0V0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.5b395fd1.0_1627426421581_0.5753004521205858"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.e5efdcc0.0":{"name":"@material/mwc-list","version":"0.23.0-canary.e5efdcc0.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=12.0.0-canary.3f36ac75c.0","@material/dom":"=12.0.0-canary.3f36ac75c.0","@material/list":"=12.0.0-canary.3f36ac75c.0","@material/mwc-base":"0.23.0-canary.e5efdcc0.0","@material/mwc-checkbox":"0.23.0-canary.e5efdcc0.0","@material/mwc-radio":"0.23.0-canary.e5efdcc0.0","@material/mwc-ripple":"0.23.0-canary.e5efdcc0.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=12.0.0-canary.3f36ac75c.0","@material/feature-targeting":"=12.0.0-canary.3f36ac75c.0","@material/mwc-icon":"0.23.0-canary.e5efdcc0.0","@material/mwc-menu":"0.23.0-canary.e5efdcc0.0","@material/ripple":"=12.0.0-canary.3f36ac75c.0","@material/rtl":"=12.0.0-canary.3f36ac75c.0","@material/theme":"=12.0.0-canary.3f36ac75c.0","@material/typography":"=12.0.0-canary.3f36ac75c.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"6ce7c9ba42d6630a9af68bb580b94e6fec508bdf","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6ce7c9ba42d6630a9af68bb580b94e6fec508bdf/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.e5efdcc0.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-lqgf9BS0+qdcJEwUdct1RpQJIukXwKQ9UEhTGaKO5HkSbffFx3Hjj7QYE0Uo3vqipGJnMEBQiaXKAXsVXNO6KA==","shasum":"a78a37e10de2a4add2220700c5c61ba8d17776f2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.e5efdcc0.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAZJ+CRA9TVsSAnZWagAAj2QP/0sZ7i24s7qOEoBmM9w7\nJiJHqAacjl1mktslDcAqD/AoKjE5zUZWnD+bIqo94DcZ+ifGLWsHexZhtiJA\n+G6o612//mZl8oPjzj34UA+FIhzEjsV+vKwT1+Pr0OrcYtc2IzWxQtiesFC1\nhsn/RtJV31J/NX09x3jIZ95IcyYt3WDRrP0F3Fvetg1JdH6LpjB14+HIM0iP\n8k5HAGJ5ogxQXoGQtpDMvecrs3ODfFXFmpxo/9U4rmR0REWcS/kdutdr7BBS\ns9z5HQxlHwG+Fydv4LiaM1EMqvfuY1Z8PjgrrRM99YShExehnZN9YmyJzj4f\ndwfJeoUmKETfgj5HNyfH8E8nS7bC4M4W/U44ro5vv9B13G8jf/V7HemO1e6n\nu3M/Fog8itK7HGt338zOjkdAYbtf888Ap5lHuI1jP38NBaReiVXDyk8jogPT\nCV1nRveSss2UvBIvc93h6MIhj9V8HJffRdZZVR7eQ1wACyMBBz2XbYiU5f4c\nqXafAcg3jH2wca6T3O+XaTMzLWRy9S/Ra2msby0z6Oovsaqm7UIO8jIU0DWY\nsMw7bkG3REVIJhGCVGIIRwK1nOejfKZLb52b6EfD8b2agj8HbtgZKHlBxoWn\nQJu3lWjYrPkRGG9KxgX6HPxrxe0T3MavXqT9cgmlIf7z9/b+e6ltG5fDqtXm\nD8Do\r\n=eHfA\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDjHxGPnpullUY7Lf62S2yFGm87M2Rz4Q+6aUZa8uESNAiEAo2NHBBFJAu1AXCFukb7fc9N1IcMFepmeXTLFUZG4y1I="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.e5efdcc0.0_1627492990373_0.9439735162260079"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.ab310900.0":{"name":"@material/mwc-list","version":"0.23.0-canary.ab310900.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.ae85f7eba.0","@material/dom":"=13.0.0-canary.ae85f7eba.0","@material/list":"=13.0.0-canary.ae85f7eba.0","@material/mwc-base":"0.23.0-canary.ab310900.0","@material/mwc-checkbox":"0.23.0-canary.ab310900.0","@material/mwc-radio":"0.23.0-canary.ab310900.0","@material/mwc-ripple":"0.23.0-canary.ab310900.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.ae85f7eba.0","@material/feature-targeting":"=13.0.0-canary.ae85f7eba.0","@material/mwc-icon":"0.23.0-canary.ab310900.0","@material/mwc-menu":"0.23.0-canary.ab310900.0","@material/ripple":"=13.0.0-canary.ae85f7eba.0","@material/rtl":"=13.0.0-canary.ae85f7eba.0","@material/theme":"=13.0.0-canary.ae85f7eba.0","@material/typography":"=13.0.0-canary.ae85f7eba.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"e3a3d97dc865cef9b5eee17c8842c3ef9be90dca","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e3a3d97dc865cef9b5eee17c8842c3ef9be90dca/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.ab310900.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-Vbdm9uJvtDy2y4va3Iw7Fs02EIGxZqOlRFH+hcQTGI2PcLYHLeoWnDJGIKLdXdqmo+z47ydaZ/+JTiWHxcHr1A==","shasum":"eed0e2af822b16f21e87642110c85571b53a365b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.ab310900.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAbxkCRA9TVsSAnZWagAA5lcP/0AYjaHXviHJMP7t2u8N\nA+EbERdI/B+5g92lG+CMksrPN9TSVsDHIgbdL9RYLdmDoKwHUN1u2dXM5H6v\n1vpN4jAr9KaGcebRAf+t/ae2sbxA1L0y0+KRkUdqvzQo+uguBbE/xHOxiyWS\nm8W5u/C1ox8fZ6L3OOa1bYSc3x5NSUjz1gEL+P7nNp8f0liy1LbzwRQ1X47q\nz2g4n/ti0b8PbaKTZbr0FDPQ0n0DKWpFVoCWctlSsV5EUoOHqY6RIjvPxEgl\nE0E3ifdvybAYTeBZQUUQW8UBudb+s8pJR2Jg9zVLDAn2kd/iS/khj+EsBgrh\nqvR0Evppx8WlwJB9sk9pDOs95EZfHMzVqB/l+4pMY4Pf0E8kgadmEj3iho95\nvneaXvdOZvX76QZeTkMDRl94WrWd9wiHH+FNKo/wUIX0rU+V8Ft/hEVsVHa2\nJd21Ak912M/JUbHHpxT4Bv+H9ZJyAb4RX4fpYFJOgouHa/qyo8ABB7PkvUKR\nYvcIodIcwgRkAMGI2HdGJb2LdNUPB9RHvui2sdMS4ln1ly8uqTr9TKMd7Q04\nIPuqfiNo2QjtVQtHTqdQs/WEbtLOswZWnLnWuvEsWDu/MwcCRUWNgrByvuoX\n7FVxHdLuhlw68R0zxI/+tcAlKdd2x6lojkPObwKGDaEwhDMXwpOoBMHVwVXv\n3cpK\r\n=7eT/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFTK6D4MyhVrG+qF8AH6toMstqQSyyhiYkaChBjvRVlCAiBdDB8LukgKBG07jTDF2ibc9muC1F0QQYIwkAdK+szt8Q=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.ab310900.0_1627503716422_0.28871106999859286"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.21dc9bc5.0":{"name":"@material/mwc-list","version":"0.23.0-canary.21dc9bc5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.ae85f7eba.0","@material/dom":"=13.0.0-canary.ae85f7eba.0","@material/list":"=13.0.0-canary.ae85f7eba.0","@material/mwc-base":"0.23.0-canary.21dc9bc5.0","@material/mwc-checkbox":"0.23.0-canary.21dc9bc5.0","@material/mwc-radio":"0.23.0-canary.21dc9bc5.0","@material/mwc-ripple":"0.23.0-canary.21dc9bc5.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.ae85f7eba.0","@material/feature-targeting":"=13.0.0-canary.ae85f7eba.0","@material/mwc-icon":"0.23.0-canary.21dc9bc5.0","@material/mwc-menu":"0.23.0-canary.21dc9bc5.0","@material/ripple":"=13.0.0-canary.ae85f7eba.0","@material/rtl":"=13.0.0-canary.ae85f7eba.0","@material/theme":"=13.0.0-canary.ae85f7eba.0","@material/typography":"=13.0.0-canary.ae85f7eba.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"cfae2d30a40b9717e93cc7842d29f51de61c497f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cfae2d30a40b9717e93cc7842d29f51de61c497f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.21dc9bc5.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-Ip5u4WBx3JLNQqLcSAF4GukXfFuy+lheme92mO1kUeVviB/NHKFHwerF1Ksp0j0vwEUAt0KD868ixeYXDHBokQ==","shasum":"1058e6b9f359063d0d4706e2a88c692705f76623","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.21dc9bc5.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAb2ECRA9TVsSAnZWagAAjD4QAJVqH+LliZhDIXHwshe7\nhoc53Rwij44TfIJmSRzpHWMjBTmNW1QK5v5gDAaIwTT/EAtSi/9LQi6bqgIx\nFf2EU4DjPK9i8apkw4jNcunvafPgUQ9uxVEm5Enp8QGzuP7TQhzDnrUFIDbu\nvgXEB+eUTtbE7wq43mFtgFxFXtn4eVdF85vOi7SujsbfYVJd1LhzsBk0bu3p\n/iMCv7p+xGmz12hadP0Hi74pW0ecb/F2YZQGozvwCLk4vXzsp/tt12Ov51Js\n23aaDngwKuy/8wRIYYg/1inxRQ1AEOz+0dQqzdpO7eay7h0Zn25uEFNzphEi\nimJJl3pxceDOCanviG0wO6rIh6gHooHc8P0sPX1XaSNsj4RDnnNUkJxGdI/N\npF8GnKWHY50NOm26sMLw8Ezk0JfYjE56dXY/lom3pFL3JpWtG9ftnwKu7xiZ\nOuZBDQpnb41R8K5Nw91SZu9qZA6nw11BlMULzxdWS7osQT4TvPPCm7Hpi/C1\nO867Ofwe0k966o8enKrK61a0O5RPbyAyeqeFH1zUYn3MoaK+ez6Q/gjtet5U\nywwX0OJioJEVUUe6nSx5kBAre5Q65Jss1YK5x5+fqPHYqJEqlME91JcsJvA4\ndJrhZcq+nH80BBvaSi4qm0dLgJflxL5mz+vAR0J+plYmf48/hW7jq2wAwfKT\nymOP\r\n=VKZw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/czvWCRXgqk3HoY0+Br5H7i3ezyt3XTojRx32+DV89wIgaboE+/AnsVPOp65hMrFjQ7mSxWykgP8GgKylIeMBFjM="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.21dc9bc5.0_1627504004368_0.6917119582260716"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.68c7fe5c.0":{"name":"@material/mwc-list","version":"0.23.0-canary.68c7fe5c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.ae85f7eba.0","@material/dom":"=13.0.0-canary.ae85f7eba.0","@material/list":"=13.0.0-canary.ae85f7eba.0","@material/mwc-base":"0.23.0-canary.68c7fe5c.0","@material/mwc-checkbox":"0.23.0-canary.68c7fe5c.0","@material/mwc-radio":"0.23.0-canary.68c7fe5c.0","@material/mwc-ripple":"0.23.0-canary.68c7fe5c.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.ae85f7eba.0","@material/feature-targeting":"=13.0.0-canary.ae85f7eba.0","@material/mwc-icon":"0.23.0-canary.68c7fe5c.0","@material/mwc-menu":"0.23.0-canary.68c7fe5c.0","@material/ripple":"=13.0.0-canary.ae85f7eba.0","@material/rtl":"=13.0.0-canary.ae85f7eba.0","@material/theme":"=13.0.0-canary.ae85f7eba.0","@material/typography":"=13.0.0-canary.ae85f7eba.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"d14f788b501a8e9e77ec19d160f45c10e76e3a31","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d14f788b501a8e9e77ec19d160f45c10e76e3a31/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.68c7fe5c.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-j03OEHBvXynT4qilFb1wtJQ9Cap9N2BlZnYiR3OWJsllj4dYDFff/A5qHTB1LLg87aoipzjN5QqF0k1JQGdX0g==","shasum":"428ead6bdc90c603d06d05a462d8032f964d91ac","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.68c7fe5c.0.tgz","fileCount":45,"unpackedSize":232279,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhAvQ9CRA9TVsSAnZWagAAJF8P/1ESdnauidj8FqvTLtWW\nSy6bewwm4+OXsxX19j4NVWByPEO8CkqLfxV4OF3FEN7T7DphpomzfVaZ5tKf\nA03DeXGxSoIqa/rgNDIrqvA/Z5+w64N8DFFUXJ7eQYLd1ckEyQKp2q1VumTl\nuOHGhkuKIz2kqpit2dOXw22G84f26eOTxTBXHwAiPNWt7NjGzZ55nsT2Olvd\n7lJHeaFK9P5tIVo/Sv3Q6ByXg3/i9ac49VnLrjonLtIoYbnuqpuXB0/ueIZP\niquq/Tiqbdha8t8UgSS2179GzMzhO0fzvkmbM0d72tL0TnhwMuDGe5MbwT63\nqKZfKU33432n6uZnKZfMYUMI+KN6PPJp9CioazXcVOCVw47xfojVwWN2nhkF\nr9f6Usekyq1RgjtMfFZv7oBXa3Xt5warzK9bXlJvA1vDnpUWf/J+GEm4Fe/1\n8Oo8ysVSm25yj3ypMnsKswwKeyUNZnS5MHsO94UiLkN9lTd0H0NrEGvERVOo\n1a63zy8NoOAmgwmUv5iwEN3I+qLZ7PI5tDp4FUz69YLCn2MUnVmUvrIMS6WH\nX/u2f4dx/zPHhiL1NMA2U7m9abRR1i9wXKF3tvi/Jjj5t6SxclIdituLbYxq\n38DdKZQf1eBOb4o7MrCq+kJFcgHABvtXmdu8ZCzopWDrdNZuW+69VoByiVB6\nh+To\r\n=MhaJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBkYZoI9zg93rTUUQoE6FFqdTQFMu0+fAwQvbi/+sHnJAiEApO1QKPTvfTFsY6IsyB3RGb4BuPwGSsaa8WEIi5CMOzk="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.68c7fe5c.0_1627583548952_0.4476080890068126"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.aebe39e8.0":{"name":"@material/mwc-list","version":"0.23.0-canary.aebe39e8.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.ae85f7eba.0","@material/dom":"=13.0.0-canary.ae85f7eba.0","@material/list":"=13.0.0-canary.ae85f7eba.0","@material/mwc-base":"0.23.0-canary.aebe39e8.0","@material/mwc-checkbox":"0.23.0-canary.aebe39e8.0","@material/mwc-radio":"0.23.0-canary.aebe39e8.0","@material/mwc-ripple":"0.23.0-canary.aebe39e8.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.ae85f7eba.0","@material/feature-targeting":"=13.0.0-canary.ae85f7eba.0","@material/mwc-icon":"0.23.0-canary.aebe39e8.0","@material/mwc-menu":"0.23.0-canary.aebe39e8.0","@material/ripple":"=13.0.0-canary.ae85f7eba.0","@material/rtl":"=13.0.0-canary.ae85f7eba.0","@material/theme":"=13.0.0-canary.ae85f7eba.0","@material/typography":"=13.0.0-canary.ae85f7eba.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"d28ef9fbd1251f2664f6385efd6cd33d59bd5a19","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d28ef9fbd1251f2664f6385efd6cd33d59bd5a19/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.aebe39e8.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-/3BX+nHWMXNwpgZSHvAm0JDQ16VOMsoQqbMho7vJyZb8FP/MIDgJvUN8wC9I3yxMj5cQrH42gKplb87yC5ERcA==","shasum":"5fbd2cc6dcc04dbbd178e7765f2a14be8cc8be21","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.aebe39e8.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhBE+OCRA9TVsSAnZWagAAEUAP/A7ikzi1EfE8U7ojm9lq\noGrUVIYNiDGh8aBMAsPbDoeJT5WND0X8qngp2lEujLJDoIpEULSV4TLu129M\nutC6ge68n9njlIfRME4mBiX2skWZu5Up4nLnyYmAQybqkcGDE2m35HB/c0af\ncIliCWHRMKYQCVmrg0ykruRqGcbyisJT1m7QE/SGOY6iH8FkEYHxeaaBZB8R\n3qRg+l6W27y2ZKJ+by8dk4nbUcf/qmOlnkE/CQ8yCr2LRW3sHsoLVuAetC8t\nQ6BibaexJdfM5zCxTLTpV0ex/o+1F7lKkf8Vszzg5ihzMPKm3YzxxhkFqXL8\nkTzXIjoPCip4QwRjAF7Ad0T3RM8FmXrOSBdjYLxmSPj4OyNk7POGGjscGVcd\nEOjPDurYKozDgqbnXa92N4lqeS+egArlC79N9fYqjbhnYKh1e7iJ0bL3ykix\nk4CV0sfvYDEekqxDejODIOJE+C9nE5BARvTLVFtcg3RNWqlyeX7SMswpwQRN\no7cEBylebeBGVbqBzy8MF95zaYzVqWOrnXN8pOzhHoiRx3h7JDXCV2NctXj9\nibd/DvnD6+Gtkeky/ca6vg0+zworammg6hUFwse5UA8kasrBXliL+Qqr165U\nhCmWQu3Gm4w6f7VGXimUB5wTq3uuDJsJENYCAhNizGRlVW7JGgvBXZ2wfeI6\nvLYj\r\n=zuum\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD8MqP16p0zyCA6P0197LIgBrW0OUeHVS1u5YbIukAB7wIhAOyWWWP4cSeRMVu4bJx40p4hxiUyLaukTtXnL7/ksNyG"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.aebe39e8.0_1627672461847_0.3023219714309384"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.ea889c69.0":{"name":"@material/mwc-list","version":"0.23.0-canary.ea889c69.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.cc5377458.0","@material/dom":"=13.0.0-canary.cc5377458.0","@material/list":"=13.0.0-canary.cc5377458.0","@material/mwc-base":"0.23.0-canary.ea889c69.0","@material/mwc-checkbox":"0.23.0-canary.ea889c69.0","@material/mwc-radio":"0.23.0-canary.ea889c69.0","@material/mwc-ripple":"0.23.0-canary.ea889c69.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.cc5377458.0","@material/feature-targeting":"=13.0.0-canary.cc5377458.0","@material/mwc-icon":"0.23.0-canary.ea889c69.0","@material/mwc-menu":"0.23.0-canary.ea889c69.0","@material/ripple":"=13.0.0-canary.cc5377458.0","@material/rtl":"=13.0.0-canary.cc5377458.0","@material/theme":"=13.0.0-canary.cc5377458.0","@material/typography":"=13.0.0-canary.cc5377458.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"29d32f8e88155014cd9963c5b4fa346d8e3d28d1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/29d32f8e88155014cd9963c5b4fa346d8e3d28d1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.ea889c69.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-p1TIoww5qLrXJRJ71Sd6+XqjnhsVP1PM3Aga2MMe5373N8IAHs3MxlO+aH8THdWVj2grwr6RD2ksSUxFiM/Vnw==","shasum":"489427aa5331ac3fb9e277a62720d15edd1a2fab","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.ea889c69.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCY9zCRA9TVsSAnZWagAAce8P/RTJmo526IbK40eMYxQU\nxj36l8UaaWpbPmb/BwSbeeOd4lYBDvGsr+2mHcpPG9q/r/JVrpEUmNMTOMqD\ng2VqX/kuPIDlWR1QuMZG7OJKkXeGW35A0U9/VcvmnefOp9XtiMURfZMKVJKH\n4/Kcv/nm5sFfznscCctjSPneKkG71HxblmbgOE1Iujdvt6RMhr24mLFDKACE\nJ1TQBowvR8N3W/RagzaIbh+BDOuV66DKcMLoomnzVPNuYsVrWdvmy2VyzEzv\nBMD1VxQZEp7CuMKcMotn61arqWFCf8leXZnb3GnB+f6FVhQC41NqzqvgXreD\nw85EVWy5YHvwR11FNd/cigV0NwsuYZXsEJRmZqCqP0LKV5VJJRO73ihSVBoP\nrA133Pm1MYx7IUR79chxqBws36wStoY74OZxYjyi95BWevV3MIRZ4m7fkqeD\nG+23AyUwYB1OMYDkmcRLNp60O9b6IgpufSVBa8B8/oZMHVG1LymL7zsAnGxz\n5gyLpQwiHQYK4nICQmgd+ona6c9MBFAR0R6jNHfBRd3m1iAFf553CJJiPVJV\ndR0q6LwqK+QIwK6P3c94hqEtX1Vx2leWc+lk9DfGO4kT1e9VijGuQMLJaq4S\nzxussax6JiWS2lLq11HOAbO4CcSGLYHQlxWrwDWc776LjJTe9jg0UjFqad8D\ngdCn\r\n=Kya2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCwDU3f6UJ/V/pdXEuTroRPBfeKDEtPXKCYLwS7zbHs7AIgVhJHKDyPMoY6vKsrJd1+2cTwGcWcZZGlyfHJ4MV3ouA="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.ea889c69.0_1628016499507_0.5430364669861327"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.21918905.0":{"name":"@material/mwc-list","version":"0.23.0-canary.21918905.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.cc5377458.0","@material/dom":"=13.0.0-canary.cc5377458.0","@material/list":"=13.0.0-canary.cc5377458.0","@material/mwc-base":"0.23.0-canary.21918905.0","@material/mwc-checkbox":"0.23.0-canary.21918905.0","@material/mwc-radio":"0.23.0-canary.21918905.0","@material/mwc-ripple":"0.23.0-canary.21918905.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.cc5377458.0","@material/feature-targeting":"=13.0.0-canary.cc5377458.0","@material/mwc-icon":"0.23.0-canary.21918905.0","@material/mwc-menu":"0.23.0-canary.21918905.0","@material/ripple":"=13.0.0-canary.cc5377458.0","@material/rtl":"=13.0.0-canary.cc5377458.0","@material/theme":"=13.0.0-canary.cc5377458.0","@material/typography":"=13.0.0-canary.cc5377458.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b4df0dc9ece9df56af685bbc48963988f2cb45f8","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b4df0dc9ece9df56af685bbc48963988f2cb45f8/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.21918905.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-dpx1fzkR+ByNc7K7m8qF66vbQexvwm9fN/eM5BmRRoujUFSIRsKhN8FIlneEqLqXnp8elfdR9geJ95IGU+ZbzQ==","shasum":"7cd81e4f54dcbbbfe71df305d33a5f604073d99a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.21918905.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCbHWCRA9TVsSAnZWagAAncIP/2O9TDJvEdNM7zjl3XMA\nKzv+8lOLUU2WOJLQa/Ua24dV3VFh+h7b3QQA6ERfuvOpkCe0Ff4YtSFAz+Pq\njGv3z/s9LCak2q0VJjaTEU1H6K/sRCJSoVfUyFF+GTbIxnaZktpFMk2j89Jo\ne1+2AXO+rGOIQNx8PD1kJLN4ygG5ZF4cXnWdm4Ooce1z9Lki2qAs4Eoa6Q1g\nPV9QjhFF8qzKzdhgoOLQ17/9A+PA88obeLnimTRYsQ12OR4X4xgpgji3Wf8M\nKKrkd1O5suZhlAn92UoKpKf9y5hKaTUL7CN2k8uGZ8dy0EmftaoCO6+77ulB\nwInRgaooE8aXfWBUCvI85V0i/NwDwCSHK5CX9N1YeNUw/0vhVRlG7JOavtqX\n0tWIZLDjOHcgkNLQ2WXp4x00nYXtquOwCXHUrbTtbBSyFA1JfrCRx1fhH8yU\nGmH8Ux1o04EWVRCygERogNxpccUudSAh3LM2Fdaj/YcN5vhk92/uCRkKqXON\nXrACigDkSChtyuVR2iEYiJwpSghc+lo5n4iEHJYjNtJZWjrUL0nRbSOG43tc\noR5C5Q0xoKnNuzqCpcGI6bsKrK0+N5p9r8seg8pihn77YS0HZCyxqIpPW7HR\nlCpU0+zlW1R5PhB5pTypuvRKwVKkI0moj7L54Ak8fqxge6G5ccS2JO1fyXk2\nuSiF\r\n=JWW2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDzRr6J727W8MlOgMgz+IvFiwu41DsQ2jACkgH7iM35AAIhAO7TEpUfvhbnojvIXlslXjT1wpWO0QcHSG2XqAg6tD3P"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.21918905.0_1628025302551_0.7415536246113346"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.193c87be.0":{"name":"@material/mwc-list","version":"0.23.0-canary.193c87be.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.7c96e6b98.0","@material/dom":"=13.0.0-canary.7c96e6b98.0","@material/list":"=13.0.0-canary.7c96e6b98.0","@material/mwc-base":"0.23.0-canary.193c87be.0","@material/mwc-checkbox":"0.23.0-canary.193c87be.0","@material/mwc-radio":"0.23.0-canary.193c87be.0","@material/mwc-ripple":"0.23.0-canary.193c87be.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.7c96e6b98.0","@material/feature-targeting":"=13.0.0-canary.7c96e6b98.0","@material/mwc-icon":"0.23.0-canary.193c87be.0","@material/mwc-menu":"0.23.0-canary.193c87be.0","@material/ripple":"=13.0.0-canary.7c96e6b98.0","@material/rtl":"=13.0.0-canary.7c96e6b98.0","@material/theme":"=13.0.0-canary.7c96e6b98.0","@material/typography":"=13.0.0-canary.7c96e6b98.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/62c9e4344bd3aa4983c1eeddc83cc2dbe9ec6644/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.193c87be.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-sGebg93lzAPI1zB0lYj3tho6lMDwSD0ejF87joY3XFoRZP14bLZ+mlx8LQHi0eU3PS2sKlQrDu26AOPs8uyQaA==","shasum":"6451630535a2254b131d50d012a5102eaba7a088","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.193c87be.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhCteRCRA9TVsSAnZWagAA3hQP/0LVnCFbczQJOuFOWGBN\naoJNqM4kMsQMN6KPTgn2AoksAC4sP96lheZGRPd6EbraQwSZwyifUIuDpQF2\n83cUHYF+A0GDNWoB8A3QfaJ2JpmAJ5OU4TStgTn0Ip8MxjcMkk709VCa46fa\nqQJ05avG/0eByyqXOuw/DMeGjh1Cd/5USOXuB00FwoNcXJpLrca6F6VM8JLp\nunfpL7eWSjTF9vvxT1Keep9KBiOkZNhtJ1RRcKS8dMJ2qUsWQbBx0njISC3N\nQnEivWfqUGQ53VkKjMNPMKi7xB4TmBLeCs/e1pH+LXmWcRPZJj4J0fCu8pTK\nvzcTy+emrM8mlxmkMIz6RBEagJqy/zNihbH/9V2GUbGgjMKhzC3sQlA+l/Cd\nxA/wzNLPELcX9gPvOHTxU4UInsSL1kjH7jSxFCdmot+G/Cvet/6BihxjG67P\nIJNENAKpaVCatZtBPcGnW0KFU8mRtSzaukGw4f9hOKNAdd3GoHQKhmlXMYjo\n2OAoZ9YharWnp1ieF+3STCNwHg+PpdaN84Dmg8Ig40rBjVKGkxZosD2/4ttv\nsa+sqK3wUCp8aCLn+FV2YmSuyC63YDFo9cX3WwZXooXdL+7W8FH++UVufoEn\ngtOlbjhy0Jf4awmrCWOxM/OxalmnvBrzdBdPZK4LD/HBBP+iC6rocApoWnrC\n1PgK\r\n=IQQZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDuFdLKPH5GlSHp5T/2kgQxBGVngMRbe/2C07M9r/INzQIgDDXot8cakyrcSUyeAmOWHlCI7Xoaam87Wlg0Erle7Pg="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.193c87be.0_1628100497100_0.7301241425411416"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.6fc52d8b.0":{"name":"@material/mwc-list","version":"0.23.0-canary.6fc52d8b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.3dd611091.0","@material/dom":"=13.0.0-canary.3dd611091.0","@material/list":"=13.0.0-canary.3dd611091.0","@material/mwc-base":"0.23.0-canary.6fc52d8b.0","@material/mwc-checkbox":"0.23.0-canary.6fc52d8b.0","@material/mwc-radio":"0.23.0-canary.6fc52d8b.0","@material/mwc-ripple":"0.23.0-canary.6fc52d8b.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.3dd611091.0","@material/feature-targeting":"=13.0.0-canary.3dd611091.0","@material/mwc-icon":"0.23.0-canary.6fc52d8b.0","@material/mwc-menu":"0.23.0-canary.6fc52d8b.0","@material/ripple":"=13.0.0-canary.3dd611091.0","@material/rtl":"=13.0.0-canary.3dd611091.0","@material/theme":"=13.0.0-canary.3dd611091.0","@material/typography":"=13.0.0-canary.3dd611091.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"d70f6897dfb89d87fb73b1e96c8b4164ca76734a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d70f6897dfb89d87fb73b1e96c8b4164ca76734a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.6fc52d8b.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-v+1zlf6ZfhrT7GGYgtH8aaVJQjpnjEWSUWj9LqkDfroQL/8aHxj3rrrn87JPb/lxxqMSczq5JMyIIG+hhRS/EA==","shasum":"3dc6f29ffde7c26a4ee8d7c8180aa11a42df93ee","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.6fc52d8b.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDCnPCRA9TVsSAnZWagAAyYYP/RXJrNtYYxUhgqpVbqr1\n489zrygp4roGxjfnvDXVwxrwPLioJ/O9Wi9SHC/B0bT1HprwQ/m6gGdEqhAW\ni2sWVamtHs/LnVEd2nLhBtWDHQpYFyCdId/eJBIiYjPVJ0ikBvwGA74CPEqm\natXKyd2LirzGZun9LhH3eRz9Xdxsd4z+8cBeqmqr0t53qLou5rT+e19BX7Vl\n6FuleewN0d15+Mu7qshXsVz5hev5bPS6JBvVyfz4IdblDNyZcsGeKjSjUQVG\nvUvqwhjmYjF4Cidv5cU6MfRCTB/W0dZrCPQYlXlkBr0zqJ7qNwtK1KdSKQPX\nqdbqk4nxz1dp3dhjFbVIfXOY8xZkLtA0sOcVonrcYj+hGmIrWlrSLeXb/8fL\nxjYHkbQIocyBEtHkqPFkmTbo8wmmzV1ITqfyD+AOxOo/VjS0/fH01dQ7hJRc\n3l7KV8KPU0VC1YO5KlHe2U8MjVxW6/QT4F417qd1WHKAP5ZsuzqAVSB0a1VI\nNDRmT+ULWBZhFktuaBYsmE/uUJDF+J1+bEQZN2gsKWUSqLTk1r4/iAEVT+Wn\nrXGXIm1Obc9GXa2laLH5MeT2hTJzBUcV54phPeNhJODmjtZgYOBsytHGGHZt\nQWJVSnKKnMQAu5JfmaZa+rYtWofbMsCP/z7hb7pO79FvoluSz1eywQAc4Dit\nRU8u\r\n=hSDF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICwtgcHOX0cYZ9PJJZwZWTLKHxOBHeOyZuZudzqyIjEGAiBZ0kzE6UYjfcyFaqDLB3z+fejgoGjsNr6Wm420cvj4hQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.6fc52d8b.0_1628187087415_0.198366212930275"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.e2e9777d.0":{"name":"@material/mwc-list","version":"0.23.0-canary.e2e9777d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.b47dd37a6.0","@material/dom":"=13.0.0-canary.b47dd37a6.0","@material/list":"=13.0.0-canary.b47dd37a6.0","@material/mwc-base":"0.23.0-canary.e2e9777d.0","@material/mwc-checkbox":"0.23.0-canary.e2e9777d.0","@material/mwc-radio":"0.23.0-canary.e2e9777d.0","@material/mwc-ripple":"0.23.0-canary.e2e9777d.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.b47dd37a6.0","@material/feature-targeting":"=13.0.0-canary.b47dd37a6.0","@material/mwc-icon":"0.23.0-canary.e2e9777d.0","@material/mwc-menu":"0.23.0-canary.e2e9777d.0","@material/ripple":"=13.0.0-canary.b47dd37a6.0","@material/rtl":"=13.0.0-canary.b47dd37a6.0","@material/theme":"=13.0.0-canary.b47dd37a6.0","@material/typography":"=13.0.0-canary.b47dd37a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"cdfa31e7045c5004a0ebd645c1096ddc7724ba28","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdfa31e7045c5004a0ebd645c1096ddc7724ba28/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.e2e9777d.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-+iaTKE2Z2VVZYAotvUIQ0fB//Tybt4DBRgSD8Uh4ghsm2vm8ZgcnAYlkZsb45GK9OlCO27dLv+bImdL4HOpHeg==","shasum":"818dd7c6a0825c8f95ce207a78e027eb1cb94c6b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.e2e9777d.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDGqjCRA9TVsSAnZWagAA/R4P/iPIOog9E/BvdymR+aNK\n6E+Jg5116Q7cixX/ObN8I3CmPiIqrHsX0RI7Z1cW2Z8+1dmwl2guK/zgir/H\nCE+9zyykWFbvFZQz3kOA4NKEmwUpYT9rR8NcwHEO7MvZUvKRSA90Rvs86bNQ\nE3bopXdRG/rC82bERl8ez9w9c/+vao9E1yfXTJ5Q4glys2ExdLLVGkNhqQu7\nsLngz9B4IlY9TOGz2m4Gfmgdzr3oYMcos1Nzolgb1fdfTjEWc1uti3rNUKmw\nRAtdn3VtOkhfAvh2zS6XhWmgZTFYvpIrPkWenrhFa65NVQUflASCO7fyH4eU\ni2xwYRlHsd0mLDPgBoZCiNsfGqn8bk/U1WNKkl2VGDU3fei3ddN+MD8xpJ2i\nP/8XMlqVicXvXbsIudy4TwAZ1hUMyw3dyqQ1JFxEZiSo4ZbKIvtXkIcPA5wg\nTlQjuE/xvWdvDsJr790DSolBET/GAtYpBaT2N6r6U2apRh9ew++g0wxjWQ9w\nukaFhicEzWtCw5LIbxN0tilMd8y1RNj+GwZlJR+7lZ4NWG6pHs8bMWtXo0F0\nFmbfCusxm1er08GCHX+anLKbl6JU00VQ/gu+w5lw247rxp00TYFz9SmvUdT+\nPzOKVnb9himrRgUs8fBr1w6NoJwejNYB8WPUsQysECarrpYTO6IFi8io/R0L\n1BhS\r\n=ecVs\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDflWj8sQW9+APqo4dBFvELVM7RskeePiFEsQnpXdTh0gIhAJutYckjQ/AgVLoHAfPTvXr/l90i2iM9p5aEpfYppRmU"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.e2e9777d.0_1628203683554_0.34104624071468703"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.72ff1e68.0":{"name":"@material/mwc-list","version":"0.23.0-canary.72ff1e68.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.b47dd37a6.0","@material/dom":"=13.0.0-canary.b47dd37a6.0","@material/list":"=13.0.0-canary.b47dd37a6.0","@material/mwc-base":"0.23.0-canary.72ff1e68.0","@material/mwc-checkbox":"0.23.0-canary.72ff1e68.0","@material/mwc-radio":"0.23.0-canary.72ff1e68.0","@material/mwc-ripple":"0.23.0-canary.72ff1e68.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.b47dd37a6.0","@material/feature-targeting":"=13.0.0-canary.b47dd37a6.0","@material/mwc-icon":"0.23.0-canary.72ff1e68.0","@material/mwc-menu":"0.23.0-canary.72ff1e68.0","@material/ripple":"=13.0.0-canary.b47dd37a6.0","@material/rtl":"=13.0.0-canary.b47dd37a6.0","@material/theme":"=13.0.0-canary.b47dd37a6.0","@material/typography":"=13.0.0-canary.b47dd37a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"efaa4c0f4dc1cfea004a7f4dca613ec666b1106a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efaa4c0f4dc1cfea004a7f4dca613ec666b1106a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.72ff1e68.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-bIpQU2fFa9FG7yCd7VII0HWmHOxAXNonuoTrxngBf2Vzs4+mJAfPdhL3dXH+15SSZXIVBlDlzmjILRhG+XQZGg==","shasum":"2c1d2cbfb6e0fc8cedaeec16884c22542f22d2b7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.72ff1e68.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDaBVCRA9TVsSAnZWagAAfTEP/0no6hWEThNwuIGTxHs7\no1VV4PzG70KjmsBhMVL4LF7pGYUV7PPY6itn3WuKn8PTHqlqYSXAOnE+Repv\nHX/5jJl3tUhk4mF714Lr2nvrIvPN/4rI4FDIhauuQhnyMItkI42QfkKS9qez\nqesSMlhyHYCqeow8AoZtYudm1UFYbuEEK1rboumpp3iZneXI3gbgLihei2wJ\n8BCsRJ4L2zyzWFyk60MWFpqe5iA/644hCBJj+8Wi8ttRkydqZ69n2Wqn+cJK\nzfv1lGCQE683GoQsi3Xrlkrj9eH94hjjKYAxLElDMK4XQSbYF+grQ0sFt0MH\nTLC6qbO1ex6lXAPSEp+ZKrjHEKT7RR8rpAV0lQoyxUlfCunJQs9AYWN0n5H9\nxC8Kwtun4F1Im+DjiSN02ZF0IeUPr5H6+ZEoLeygYcbGHO6X2E28HngDTsnT\nz6TLzBnfQK6ZoAMkcfTY37KtE2W+B/DmRxXWa7HHi661wdbprlqoI2GAp4Sf\naorkYNfmEBgFI56TC4Cdor3GRiCYVUhtWFm7K7e+QudqnQBBlSOKe0Z3MecF\n4Tm2BzQoJ8/xpT6hEXOaCvV7Gufj770ziqdGpH3cDAhKo23KbFJeMwetiQEz\nRUjWY+0fUjE6YSuVY9iwhY2EtDmca6LdBTYB7UMnZeJ4Uoya/i5KhvBz7aed\nWLQi\r\n=N7WF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHiRJSDTa/DSn8TkIAp9Tii4lbRodpumwIElGG7cILcQIhALsSbg7NbLK3/FIz5YoBrTVyxUDUgWXPHJ0ZC+HRkzHE"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.72ff1e68.0_1628282965365_0.9364570362169982"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.c527e93b.0":{"name":"@material/mwc-list","version":"0.23.0-canary.c527e93b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.b47dd37a6.0","@material/dom":"=13.0.0-canary.b47dd37a6.0","@material/list":"=13.0.0-canary.b47dd37a6.0","@material/mwc-base":"0.23.0-canary.c527e93b.0","@material/mwc-checkbox":"0.23.0-canary.c527e93b.0","@material/mwc-radio":"0.23.0-canary.c527e93b.0","@material/mwc-ripple":"0.23.0-canary.c527e93b.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.b47dd37a6.0","@material/feature-targeting":"=13.0.0-canary.b47dd37a6.0","@material/mwc-icon":"0.23.0-canary.c527e93b.0","@material/mwc-menu":"0.23.0-canary.c527e93b.0","@material/ripple":"=13.0.0-canary.b47dd37a6.0","@material/rtl":"=13.0.0-canary.b47dd37a6.0","@material/theme":"=13.0.0-canary.b47dd37a6.0","@material/typography":"=13.0.0-canary.b47dd37a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"5f7d2f863731a86414f3b6d188833c46053b72c5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5f7d2f863731a86414f3b6d188833c46053b72c5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.c527e93b.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-FH2x7vJMRBNInRMdA7RwPVQASy/ab3UoklxUnUZ8toaAt3x5gA0FgXFZTgvGVTmMFj7X7xGgnUi1f4qWxvMm6w==","shasum":"815b7a7ee1c51d320112574593ed2fa1c75dbe0e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.c527e93b.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhDaVrCRA9TVsSAnZWagAAN34P/j9avsNNc8SfgCV6BJrL\n6Z/No2NLGeFYHVgFeSuP85Ic5qVYJq6k1H3CFKHD8aqd0Wy7T4oRzEV4rjRE\nSAfARcaBlc/Ahg6ifee07lRv9fCT16JUdY3a3gNNuQEap707K/TdnKvGvdeT\n5CWGG3+qEuOM0t1RKeGAxfo+vXgSWKbSovZYA9Z5uAWA8yOX2rwf/4QixYOb\noZfcDf2WXumZDPIcgNSg/SZaa15oHGBKbbIMElM5uLicDC8Vcg+Hr0JZZX81\npMW53TxrMThctNpK8S/QpB36/tr3PnKcJ1fVLFHlpG+Rqt/rO+t2M9VJIK85\nV0NRO/XIedM+bSx45A4ciAQFNasV19kl6QTfntBd5HIygzWA7/K+LQCeB/bv\nYKaLwa9O4ACDRdcmTsnEuMFwTSnXq/nBd32xe27cokSEcS1uUvVI6dNJp9Ah\n0jRkD1YTmrwCdLgCDdb/ZUn6EFnVgPJhSLqRWIVI5B29yFM7T5Vx5Pan5VqH\nBochCJTXNpMqSCpBj0eJ2DQ5enBraNJmCEEvELfDy6lhReW/jUb+Qb4WZGbD\nEIOmZqNOMsLKk3X+/El+CaVkHTIyha2E0KQyIEfCaEzr4rC7394YFsk8CbaP\nynRNW5t/cpcN84YqlgLmIfCW2829k3YWzphRi/liQ4TEhrGIc3vmCAXzD6Ui\nbl2f\r\n=yU+r\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEahAGzH+E877/f6sZEyUe9OLVevgiN3ECUOwDjqC3XrAiEAobbRSWSWji/DGSfxpFzFSXhdY6wq3+03BBo5PfJcTw4="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.c527e93b.0_1628284267840_0.2626036284109414"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.78b1eaac.0":{"name":"@material/mwc-list","version":"0.23.0-canary.78b1eaac.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.b47dd37a6.0","@material/dom":"=13.0.0-canary.b47dd37a6.0","@material/list":"=13.0.0-canary.b47dd37a6.0","@material/mwc-base":"0.23.0-canary.78b1eaac.0","@material/mwc-checkbox":"0.23.0-canary.78b1eaac.0","@material/mwc-radio":"0.23.0-canary.78b1eaac.0","@material/mwc-ripple":"0.23.0-canary.78b1eaac.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.b47dd37a6.0","@material/feature-targeting":"=13.0.0-canary.b47dd37a6.0","@material/mwc-icon":"0.23.0-canary.78b1eaac.0","@material/mwc-menu":"0.23.0-canary.78b1eaac.0","@material/ripple":"=13.0.0-canary.b47dd37a6.0","@material/rtl":"=13.0.0-canary.b47dd37a6.0","@material/theme":"=13.0.0-canary.b47dd37a6.0","@material/typography":"=13.0.0-canary.b47dd37a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"6052db26d383ccd469e4c4f6cca3c1d2e4533696","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6052db26d383ccd469e4c4f6cca3c1d2e4533696/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.78b1eaac.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-qT+cldcTdlF+aDXEnO9MiLyOrvNQikwS0iSROTfjuAZNe8SAF1hwhyJ3acCoKFgl/z1N9qHJK27xmbtaC/8YlA==","shasum":"b7062b01e3056f90891db85cc16f9c899461a077","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.78b1eaac.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEW4rCRA9TVsSAnZWagAAaZQP/3sTcgrC6EWAWi4YUXHr\nxR+VJkckqzbCbs16cc9u3nqiTY0bJlzU/KYOaFOIKrgBuLFxdG6XC1ZbQQkk\nFpaAcaKeWoonGqag4HE2xxBS7qosqZ+RKd5yc8sCw8o4r87CiWHwNVMnEFnt\n7GSy3E9RapwLeJNUmkJK2ygiRVBvx22nmMIP9Z8Lqi0ebaAxP1sOxSLTQH3W\nTN9KXw6sWsCVaN2snSe5gmisjKyTMeMwqOqtz4fMrrdoCRUzMvRVm+TanBT7\nVAQil+NhxFvwifO8QrKEJVShaitlljY9lmeWoE7ScpwY8QIof/XwFm5ANPXa\n6cf7DMoDE8/edDo3PcIV0llaEaeposjwztKkKQmwd2zGIr+lTQzWayhBm2Mz\njp5+vJ0vqj9dXRcbcTyqOmMzrIDeWGw2zNqVxqExPLkr9eivGVw3NrZGJ9D9\nxUQxbdD1xlv6lbegbBihBUZp3DhFtOKk22OBLQk5J6kQAZHMwY/kmKo7iYuA\nw6MyvVKI9fIETCKAvKlR+Cn2IdBdoTkxzf/CBUHVsNnZCc9hnGFd+8lBugGs\nKVrMyuBU/B5FVIkRJ51PmWg5ZgysQGP7NdtkfpZxUYUaXygXJZ4EmoD8bkdR\n0pSgokIPlboCJBJJqAliV6NlVn1gCNMivuoPwIO5zYE5Vvk/flaNTIqGM2rh\no7sX\r\n=MR+f\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCT1hCZnIF8dM7n75Dt4eU0ghjCHyqUhe3SXy18cchAQwIgfspJYledt4eUAWngkfR6mwQT9S4hBTxXlDlVy6UqP98="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.78b1eaac.0_1628532267134_0.20303128254537217"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.a8a4ddc9.0":{"name":"@material/mwc-list","version":"0.23.0-canary.a8a4ddc9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.7249a3060.0","@material/dom":"=13.0.0-canary.7249a3060.0","@material/list":"=13.0.0-canary.7249a3060.0","@material/mwc-base":"0.23.0-canary.a8a4ddc9.0","@material/mwc-checkbox":"0.23.0-canary.a8a4ddc9.0","@material/mwc-radio":"0.23.0-canary.a8a4ddc9.0","@material/mwc-ripple":"0.23.0-canary.a8a4ddc9.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.7249a3060.0","@material/feature-targeting":"=13.0.0-canary.7249a3060.0","@material/mwc-icon":"0.23.0-canary.a8a4ddc9.0","@material/mwc-menu":"0.23.0-canary.a8a4ddc9.0","@material/ripple":"=13.0.0-canary.7249a3060.0","@material/rtl":"=13.0.0-canary.7249a3060.0","@material/theme":"=13.0.0-canary.7249a3060.0","@material/typography":"=13.0.0-canary.7249a3060.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"d9658c00d9d10361ed16fd976b03d6652cda9ef6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d9658c00d9d10361ed16fd976b03d6652cda9ef6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.a8a4ddc9.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-bcTUO6Qb23uH9DbqXzFpC452X8ZI4PQEuV8BJBLxIb9t2KQpiCap0CXr5ivblnr2NrU5PzM66sIdoybnVSZVJg==","shasum":"06e2035d8c0be20370edfecfac3086b163c03cde","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.a8a4ddc9.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhEsnDCRA9TVsSAnZWagAAuX0P/0Rt8cWv/qVv3jmuAsf8\nvPQuukRtIuXkRluexsPWL99AvPzYKJJZeBjLmCcBvyeaJB1bYDVodjdOzhQ3\nlJNoohOxFMN/0ssQFutXGfGHcGINJU6yl/LKX+eFGx2rGQh2OX4yTPR/lLMH\n2pCGESDcUVGPZ3Eu3bwI8xNgt7gOHe45+ADf7rgUeGFvEG0zrFatlBgdENLu\nx8Jgy9oYQDiXjwX3V3ZG4f4wLmVfZUNTwoGCQUnF+BBTjZ78QhrWP736oMDN\niXgxjma37EYEVZh7289tY+/3TUV7Imr1M+wW6ffxd467SXZ8A3zYiOS68vPl\n4J2Z3Ssav2cUpNqbqPxQndme2C5D6M4legel1fjGmPTDaucppoiJnXKD4TvP\n/Tdeg8jHdF1Ly55JrWp0sD6MH0+mv5RiH0pN6NlsWC728XWBQ/WGUpNHvwgt\no511QglntIdagMO5w2ZIU+w5O9jePDP0dQhdJDyUjU47dZAVzzf0UepIG+/k\neBqNnadWZM9ZOcpvGMDmMW6RO6hqdG9i2ECDOK9uG2PIKjIFYaN/0BVkHW1l\ngOYaZkP9ipU/VyBn862ZLSNY8xX91spji/NKkUL/R6a1ynDJp6H51o8aupxy\nnik9dkmMLYN9uTsmmprysniMPSQXpU/igFclQFooKFAxdlKSqbsmyAwCiUOg\nYrRJ\r\n=KACm\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD10u2OpnD1pjvMrs3pG0GkxpeKpesNc+6jSeWS/BOYMAIhAP3vBdF9Zm/P+gJUxxJNj1QrOWONZfaf3hvfyDTaKysa"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.a8a4ddc9.0_1628621251507_0.5532605319935004"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.99fc0632.0":{"name":"@material/mwc-list","version":"0.23.0-canary.99fc0632.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.f4241a42a.0","@material/dom":"=13.0.0-canary.f4241a42a.0","@material/list":"=13.0.0-canary.f4241a42a.0","@material/mwc-base":"0.23.0-canary.99fc0632.0","@material/mwc-checkbox":"0.23.0-canary.99fc0632.0","@material/mwc-radio":"0.23.0-canary.99fc0632.0","@material/mwc-ripple":"0.23.0-canary.99fc0632.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.f4241a42a.0","@material/feature-targeting":"=13.0.0-canary.f4241a42a.0","@material/mwc-icon":"0.23.0-canary.99fc0632.0","@material/mwc-menu":"0.23.0-canary.99fc0632.0","@material/ripple":"=13.0.0-canary.f4241a42a.0","@material/rtl":"=13.0.0-canary.f4241a42a.0","@material/theme":"=13.0.0-canary.f4241a42a.0","@material/typography":"=13.0.0-canary.f4241a42a.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"1182c7b11008cbaa2e6a052092cde8c856306942","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1182c7b11008cbaa2e6a052092cde8c856306942/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.99fc0632.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-tS+aR8Rc8kbk64xWHP0/taVKIWs4XbQtTTrSSCMk/GgcgohZUXMkoXjvAcanLqeTF92o494u7wm7njJz6EZLXg==","shasum":"8ce99f5203623ef983a9c6741de78485af982bd6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.99fc0632.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFE2UCRA9TVsSAnZWagAAVtUQAJW4jXtPiyK/lkOwceRH\nqOoATgSI+sm/EQ1Vh86XZBViMpNVba38/DHYsQXjaI7nqdip1R0gYQf6BvjQ\n0MTnWru5SZIbiizMB1Co0BvH/nJNS06J+kZjuzp3l3MbczzXpcwyNg+zgamI\nLVLG7xxYmMiWYDClSYtIPdqqfBF0EGqeYxNtMyEo+w98pqy9yBK8XlRpe6Db\nFFAOj7TYr+Bdmlds0LssK+dVAwQPQTdA9aeQWDIMvxFLYpdbi/wpKHvL1CVS\nxZB5Wn2B1ePVSwnelUPmNEB/CwTopBpxS4Mr+u9jAbTQh12qXmNT9lKp4JR+\nAPJ/mCV6r6FfKfoQJ9ajACB7HdvUTNQwEujEY5qKRSAZICUj47bX4cKhBt5V\nhiqs4/42mPhb3jIsYv+2zk1MlyYnEzPj5l1zAqdhvzhEfXfyFPQX3T1/cI2G\nLRnZrr241RUEC1w4WRk8GeY4VntbrTuSYmHMTsYjs04xngwdFvmN5TR4DSth\nZZY6CgXWE8L9jxxwa1ukBkd9BKIkcxBsj4BM47qB7aWgeQGPzvnOI4UFjm8a\ntQaIhZRniDh6yTJg8NJ2U6gGAUpYY2WAzJ6Xv+07luni/UQO76hLHSat7QOa\nIW1AEH/34ppEQ+QjS26iqwgC7gaX6y3BQfu7qgzpZ59rhCvzQtqrmHH05C4/\nmQWU\r\n=a9hk\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEB/S3ZdeqKFmWDnNbr85yHJdO36MULbvUszYP7cBc8LAiB5eIH4ZPVbt7yFQ17tCYAtkVPFF2fIXMJlMbVrR+4GCQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.99fc0632.0_1628720532776_0.4088321700538262"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.3f47ae57.0":{"name":"@material/mwc-list","version":"0.23.0-canary.3f47ae57.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.0ad12ed3c.0","@material/dom":"=13.0.0-canary.0ad12ed3c.0","@material/list":"=13.0.0-canary.0ad12ed3c.0","@material/mwc-base":"0.23.0-canary.3f47ae57.0","@material/mwc-checkbox":"0.23.0-canary.3f47ae57.0","@material/mwc-radio":"0.23.0-canary.3f47ae57.0","@material/mwc-ripple":"0.23.0-canary.3f47ae57.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.0ad12ed3c.0","@material/feature-targeting":"=13.0.0-canary.0ad12ed3c.0","@material/mwc-icon":"0.23.0-canary.3f47ae57.0","@material/mwc-menu":"0.23.0-canary.3f47ae57.0","@material/ripple":"=13.0.0-canary.0ad12ed3c.0","@material/rtl":"=13.0.0-canary.0ad12ed3c.0","@material/theme":"=13.0.0-canary.0ad12ed3c.0","@material/typography":"=13.0.0-canary.0ad12ed3c.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"edf4f3bc9066a2b36444c8a434994a5482e8b500","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/edf4f3bc9066a2b36444c8a434994a5482e8b500/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.3f47ae57.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-xqtU/5m5Id2BF2TuzX85IGjM0vziF7awNLQWdxXf/miBOD6pPZPhrUpZa4G3E5eR44bRCMu4bDt+d0xpvHEP9g==","shasum":"479fa7c26f9341e8cad4a7b0c9ce9cd1c1b48de9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.3f47ae57.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFWHFCRA9TVsSAnZWagAA0C8P/1V9LmoyeJ+LzvVLr8K0\n17GieLwbR0BqU/8KndMPl01WL3qGZINm7lsUcPXDcKITynzYUCzDiiG7z8L6\nP6VAb7ptz4EcyoCgRMcO+i18gE0wS9yftZuse1jGHxR2ClqRJgWtVWCclKuj\nRaVmgv81PQkbswxZOrI4XPce3idfQGOAsmRdNOA9PxFnCUAGTKrM4FDNyyF7\nakC2GVxdts8Z84A+N3rvqnaUSiculJCD1OOigjIMNJ4G8OkTtZQSY9ODEvvs\naQ01hOlM/HxTj+9fECbhS3FJkbO7jsPRgCzLCW56Xn8y9uVsH0x75R7Ni4nU\nxmyhJ5w/pd/GuuU5V8zFk/AuHeEpArQzGFBsT5X1beYXUcHDRfatO1AESanW\nfZIEkpsC0fzT0Rfw/USuFY/IJZlOJ1iiQiMBC+7yzs39pLuarfA/7o7DFHzF\no1Pm9K8nGEcIbcX3jqiCO+xpLzzV0CXB4D8L4PtE86agwUjKuaP9DTA5z7Bf\nIb62WGNEAO4xUcSfirilMLj6ESgzLep/zVVPtknWsH5jHW6WRhBMfp8i0cnD\nG6Ek1pOU+AxR6eTo8xFExrJ3ns6m9fdl1KiQRKMkHZGoP6WlV3Mmsk5ySM2r\nkQt8nEwuuFbm0xpxWiEbIRytkkZ5gGNtjoM5tB3pD0I3OnhRvafacOqWCTi5\n9ynW\r\n=C/Rh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCw8W07WJoGQA6h3JRcxYcO565gZ6tDJQwaTVsDbkye5gIhALy9JjLAh046Ez67iKAKrKE7RMi+DYvbby3GSvA6ILYx"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.3f47ae57.0_1628791236944_0.8522311388262376"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.6b9bfc32.0":{"name":"@material/mwc-list","version":"0.23.0-canary.6b9bfc32.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.077dcfcfe.0","@material/dom":"=13.0.0-canary.077dcfcfe.0","@material/list":"=13.0.0-canary.077dcfcfe.0","@material/mwc-base":"0.23.0-canary.6b9bfc32.0","@material/mwc-checkbox":"0.23.0-canary.6b9bfc32.0","@material/mwc-radio":"0.23.0-canary.6b9bfc32.0","@material/mwc-ripple":"0.23.0-canary.6b9bfc32.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.077dcfcfe.0","@material/feature-targeting":"=13.0.0-canary.077dcfcfe.0","@material/mwc-icon":"0.23.0-canary.6b9bfc32.0","@material/mwc-menu":"0.23.0-canary.6b9bfc32.0","@material/ripple":"=13.0.0-canary.077dcfcfe.0","@material/rtl":"=13.0.0-canary.077dcfcfe.0","@material/theme":"=13.0.0-canary.077dcfcfe.0","@material/typography":"=13.0.0-canary.077dcfcfe.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"2479bbd88c9e53b974ec7671345a52cd8ac0e907","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-components-web-components/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2479bbd88c9e53b974ec7671345a52cd8ac0e907/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.6b9bfc32.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-BTJYLRDZk5YOQ6W+ASIu3cG8cMSGEt+NBEh0Nt+r4rRzKRl8XBH5mLQmyKQp9huWDbv2RKmmjtST0qNx04CFqA==","shasum":"79847dd7341cd7e350a2bb40e102f2affcf9f524","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.6b9bfc32.0.tgz","fileCount":45,"unpackedSize":232503,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhFWdwCRA9TVsSAnZWagAA7RUP/RQ9KKIJIrpp7blTFEeh\n0rqFVlR7YfVIm6glUmAHP+X075IMzbF+XQDmtTBcCqEsiEoCYmQM8PEzcP6t\nhls3mkC4FQvFk4oymqMNmk1nlmeZhfveZTen69ALns/U92wAQ3+8mByC0mck\nOMkzHR6TPqDuK6tInGSEqwEE98hE3e3QiFqRE1GEfZG2MJA8fHyf3tPT7Qy1\ny7XkNGWdqRgWmCoXAf0WV0dvB46810KYQruZXLaJP1Y++XeRo/8UyXXzxzqz\nLJRIUIBXHzkOnFPZsL1DTrfh7NuOIQVnF6No7XzTnJ3L6ipR1Y0qlG6ti4+n\nkiHrzsHwJQE+MHtdMD10agaLS2ik9/qJ3hYoRaCxcex4n7MVIduggGZngAwV\n6KO7ved3dAVqE7YWjNxpkjqVKWugCn2l+YTKkrH3W+worgevxLrxgRV/XDg8\n3BCAsEf3UWyxMLzn/234dZfu6bUSqOcpogjRCnAssKxRcdfBvGH6Z3MuXvoj\n9+nru/BgfUk0+QrGerLrQEwp3y3GuS74t8fUD2HeyPyca7hAAd/wehB+YLqd\nHshrsFmkd65AxD1kF/zTRSzS/fqgYugmVDu+GUC8dQGOe2u6Hv6NxhN1wptC\neEIfMUwsuXyUIyLbF++W/py3vjtADG0m5Zj8LHr/BGxR0WxGx3zpPKxFtjcI\nJEMc\r\n=GDOu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDPMg9CsEceEtlSWegbEvvoq+rCVF57sznXiJH0eZKRJAiAdX4qwn7l39WIlVQpcE+NBP/8jj8F6S1zGmKWzekrSTw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.6b9bfc32.0_1628792688179_0.4930133730419548"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.c89ecc63.0":{"name":"@material/mwc-list","version":"0.23.0-canary.c89ecc63.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.2fb068fb0.0","@material/dom":"=13.0.0-canary.2fb068fb0.0","@material/list":"=13.0.0-canary.2fb068fb0.0","@material/mwc-base":"0.23.0-canary.c89ecc63.0","@material/mwc-checkbox":"0.23.0-canary.c89ecc63.0","@material/mwc-radio":"0.23.0-canary.c89ecc63.0","@material/mwc-ripple":"0.23.0-canary.c89ecc63.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.2fb068fb0.0","@material/feature-targeting":"=13.0.0-canary.2fb068fb0.0","@material/mwc-icon":"0.23.0-canary.c89ecc63.0","@material/mwc-menu":"0.23.0-canary.c89ecc63.0","@material/ripple":"=13.0.0-canary.2fb068fb0.0","@material/rtl":"=13.0.0-canary.2fb068fb0.0","@material/theme":"=13.0.0-canary.2fb068fb0.0","@material/typography":"=13.0.0-canary.2fb068fb0.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"aaa5bd89f698007e7af19bbeeea7c1212b851c35","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/aaa5bd89f698007e7af19bbeeea7c1212b851c35/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.c89ecc63.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-Jb4gi220DEyvfamawvj/mAPsmgUl7ncn0QFSpNqvVvv0xfG/PE/sli79PQwAUzTUWrqTT2zGCuP/UGKQp0UKvQ==","shasum":"4b019ac2b820c9a96c2f26a8860aa2fab277c29f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.c89ecc63.0.tgz","fileCount":45,"unpackedSize":232481,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhGp2sCRA9TVsSAnZWagAACMwP/2eWrkfMhjx/jJQ0A8O2\n60X6x9iHq9rGFFzKU6uKm/3pKW9z373JDWLilY3m3wwQkPshl3PviQQFIM1Q\n6K/jGcs24XRgOAuijgfKJfgkBgtkH0QYtO4JDCHaKKKU1bioiAQ/f06N3DEz\nBUQgoakXBtM3MlwofqiRtMTJwtWEjhJcQAHa177k++efzp6eWMjDiFRh+WFg\nSUyUljXesAUu8LqgwVB1WhBjaQdL8lx3Erm9QiRZySM/U8wzC/eOyBtr//1Q\nbERf1Z+dUFJ2WU6/NsIMNctwez/xHLacJVC7+6g+qFHW6LlcX7wpRvnqcAtb\nNgITBQvweP5xvZPut4SSyIrcjb1rGhX6kOom4sRcOd4lkBS7dNn2gvAL33w+\nC1wwjVwXZ3pRD6Hy9KWZ09dEYxTtgDixrEk2jNfKhpVgOwITZMPjG76CYLAm\nhEepMIrmWHGl1c3aq0yFLry4b/T6YHnOpnvgvzyeLm2DcPVgSVBqNvXJvvTO\nm1LxQwIQ6kZlce3hDVomxmWAwJBMsm/0dgVo8QlkLAj2fBUSoshKmGi5NbQL\n9gzkroGQedV7ztPB1g041tS4oDuqzARZr4xHUG2ySRfJmqEr08urkvOfmJhq\nFX5yAB2j2QN808DPyPKI2UZmS/wsaInASA0s3WaPz9yeZuV4ijxC0OmiOEyB\n5cGO\r\n=Ysp3\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/QJvOR/Q6F9N4UERFkMh8c5kNpgdBMsyPSzj1rXs/sgIhAMFg78pDNCLgJ7FWdzgyaZmW7qqetsdoDoTyrvzowXCA"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.c89ecc63.0_1629134252673_0.5730023933191721"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.59de86bd.0":{"name":"@material/mwc-list","version":"0.23.0-canary.59de86bd.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.457d89aad.0","@material/dom":"=13.0.0-canary.457d89aad.0","@material/list":"=13.0.0-canary.457d89aad.0","@material/mwc-base":"0.23.0-canary.59de86bd.0","@material/mwc-checkbox":"0.23.0-canary.59de86bd.0","@material/mwc-radio":"0.23.0-canary.59de86bd.0","@material/mwc-ripple":"0.23.0-canary.59de86bd.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.457d89aad.0","@material/feature-targeting":"=13.0.0-canary.457d89aad.0","@material/mwc-icon":"0.23.0-canary.59de86bd.0","@material/mwc-menu":"0.23.0-canary.59de86bd.0","@material/ripple":"=13.0.0-canary.457d89aad.0","@material/rtl":"=13.0.0-canary.457d89aad.0","@material/theme":"=13.0.0-canary.457d89aad.0","@material/typography":"=13.0.0-canary.457d89aad.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"ac639cd83d2e2bff117ac2f85b2cd2641560a85a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ac639cd83d2e2bff117ac2f85b2cd2641560a85a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.59de86bd.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-QxN12zNMxZubKHX/yaC0Y9Ww3SfZ0htSlDP/f0G4JvIsVTe8/uvSb5Tckw8SP2xV37ne3ERe8dOMag8o8qgiTQ==","shasum":"a16c51ca45db6628fcf701405c3906abfb2870ca","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.59de86bd.0.tgz","fileCount":45,"unpackedSize":232481,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHGS1CRA9TVsSAnZWagAAEQ0P/3WMoBY1FYqsbp3/NwGj\nu4NB12ssA6ESf9h0wxiz+yS+Jntug8Xp2bY4Q5rsv7XlKgePGMAwAaRKV5Qg\noAGRgnfBaWR5dhUNpVN2+0j2BFGLcin38AgQwn96ieEDANyEYAeA0KJy33lm\nkn3QB2MtFiFp5KuD4iei/VnRMt5BXbiibPMGxUw+grvGWAV5KxV4IvRryteH\nsUCGObGgMKzbS8NXJldCBVtjyQzkGftvtWgG31ZkVFwynzKHSCvdBVUe3nbV\ncBB2agty3UuPaf5eMVzJGrSUHRrphh/8D+MYD1G4a2t0JZX87lU+Atanh5IF\neoKg8ryysmcmA1qddHupNmHnBgxC/UB+DqSzeJPjqK1Gq1+eIUv/FCg60xF3\nuUuupJ/vAtvQve7FIxsvwh/rdzNGV0HTKHtVAHaTQu/ztk4xmXdYSScNT/5G\np9f+kIeJO0YM3rMzc6yz0KPYKlFnFf8DQaDKRfNNQYhraaQC8qierMY5w1fR\nbUXRgEm8zRNsfY3GosHvXqlmJf+MzK/ylBC2h6zg1k1hIx6OLGazVAVqN5IZ\nglN7Hy5AFQL/RSfsah+SnbwTQadaAMLw3Am+79GXT2zwEyZWnLM71NlPlLVK\nDoKGxck9Sn7pFuj5wcrwdo8ViAt0w7mRbw79U00nu7PQ1V0IOR6zOiWKwozS\n6i6p\r\n=aTVK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA+FlOu4DJyOjT+nh9SgBGvR3e+aDxj2R2RznmWvWxxMAiBZ+YNYqzUYZhe4Tx6Qt4c117uebHZuk4IDtsud9eQfWA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.59de86bd.0_1629250741251_0.37723039235429323"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.dcda879b.0":{"name":"@material/mwc-list","version":"0.23.0-canary.dcda879b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.43d2eed2a.0","@material/dom":"=13.0.0-canary.43d2eed2a.0","@material/list":"=13.0.0-canary.43d2eed2a.0","@material/mwc-base":"0.23.0-canary.dcda879b.0","@material/mwc-checkbox":"0.23.0-canary.dcda879b.0","@material/mwc-radio":"0.23.0-canary.dcda879b.0","@material/mwc-ripple":"0.23.0-canary.dcda879b.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.43d2eed2a.0","@material/feature-targeting":"=13.0.0-canary.43d2eed2a.0","@material/mwc-icon":"0.23.0-canary.dcda879b.0","@material/mwc-menu":"0.23.0-canary.dcda879b.0","@material/ripple":"=13.0.0-canary.43d2eed2a.0","@material/rtl":"=13.0.0-canary.43d2eed2a.0","@material/theme":"=13.0.0-canary.43d2eed2a.0","@material/typography":"=13.0.0-canary.43d2eed2a.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"ab309abf464fd85bb1f234aaf8a2ccd35b8e7635","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-components-web-components/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ab309abf464fd85bb1f234aaf8a2ccd35b8e7635/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-components-web-components/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.dcda879b.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-GjTJxyQAORV58dAFvDuAn82QuhnJI1TruRSIQ4RDaXbmRR/TA/XcU2fw1Ns4JbrTZiGvpmdeCFCOXp9OILYcKg==","shasum":"b7c142db686fcd38d226fb42ab96012379aaa2fc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.dcda879b.0.tgz","fileCount":45,"unpackedSize":232481,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHYh4CRA9TVsSAnZWagAAy/0P/3H8IstsyWajXcx/tOef\nPRPrnxEEv3Za6whJBEnckxYz0gda/mgeZ4ysUJPxH6xEaojNUxHml3i4ypoF\nZCdDbhbiupWxPGWI6BG5EcrkJIuU0t8UKIwfjgq3f1Xq3lmRmx6i+6MA78ml\nBcMm09AQBdyEGAsVjQS7yXTVQYxkPjCTUqHwSolrTv2QNPNXtUx60swNPw2A\nYQ9Cx4QwU28lAhS7ENC9TGyk5NXDxWlXlMvCor02wBPqtk6bfmR4ipXPL1OQ\newPRnMeP+L2f9zmYQUijWNCWQYzvjTMXzZ7QiVSOEvMdTE5RNLdxH09Vs2gY\nNmG3U5LGymD9X2sZr5vMSA4SFcp975K4CPVOg/oQH9SI6jNkysHAbF2lzYde\ngDujyi2+KLXFZj4Zz911TLy1s4BGlazSsm1l4rZE0D92a+2n8ZUetuWC1/iW\n7SfEakPmKAYGmG/bgWAH42DXP1UeJb3z/oqN2aGzHifwR0wOk617Ou5unhqf\nv96NJtNnPy+R9ORO5Oma5v1NYuErE6EpprVoLoA/uc9Tt9kqFQ3WO2YmHCbX\ndfUJdk/sTZP24JwNdg1XERxNBLt7C80qO0atTv+GRftsNTzm1q6c9jTDEct+\nnLd8DH0N4nCPK4+Mj+jQGkrz2pFs27VgRocaVN+C0k53fMNKKpwfHAJkqc2d\nFDPz\r\n=TCPV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCS9ym7kQJPd42KOz7OFP6mAmCvDXSbl4BVn6FHOVje7gIgeGMPIIdWYpuG5waTtKpEGTWMeo9kw8TaBVbTKen45/A="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.dcda879b.0_1629325432257_0.15752433597716053"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.dbb8b366.0":{"name":"@material/mwc-list","version":"0.23.0-canary.dbb8b366.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.43d2eed2a.0","@material/dom":"=13.0.0-canary.43d2eed2a.0","@material/list":"=13.0.0-canary.43d2eed2a.0","@material/mwc-base":"0.23.0-canary.dbb8b366.0","@material/mwc-checkbox":"0.23.0-canary.dbb8b366.0","@material/mwc-radio":"0.23.0-canary.dbb8b366.0","@material/mwc-ripple":"0.23.0-canary.dbb8b366.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.43d2eed2a.0","@material/feature-targeting":"=13.0.0-canary.43d2eed2a.0","@material/mwc-icon":"0.23.0-canary.dbb8b366.0","@material/mwc-menu":"0.23.0-canary.dbb8b366.0","@material/ripple":"=13.0.0-canary.43d2eed2a.0","@material/rtl":"=13.0.0-canary.43d2eed2a.0","@material/theme":"=13.0.0-canary.43d2eed2a.0","@material/typography":"=13.0.0-canary.43d2eed2a.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"9def9b810923fb3cf5946b62d7be5df5ae926fe6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9def9b810923fb3cf5946b62d7be5df5ae926fe6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.dbb8b366.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-/+2/WV10DsYC+yhp5vyZ40cMVoJq7ululYRHlAvyJfIocYTcrd3FcfDWO90ZPh2+CjLdZnQywDF9emk/V/QAlA==","shasum":"57f4360c8d97c670a51bd84cfcf6a75d2ac8910b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.dbb8b366.0.tgz","fileCount":45,"unpackedSize":232437,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHuKnCRA9TVsSAnZWagAAdGQQAJMMfK9VmQmEXpk5h2Wn\nrcsiJuOAEEvz/BLRTnfKLhKILIpEKoJB/48huTtaxN8ypKUG7ZDtJRL9VlHK\n8Jcnj7fEiVerxaD2wOg7w8I4ozdw5awe+S3ufBL9Dj8b2Ok2pXFKV3JlOO76\nb6RV7CiCUroVQBzQSv3bsgqbvPnsWUgAozrhmCl20C7bK07GvaFBXkr45Ry5\nIcGXIYHbfYOo6UzBwsRyCKkpf60iI1997xKyvxapwbb0cSDFn7bVXzzLXxN2\nDMl2G/4P0QwKve8OG1KGmNlpb6BTs1Pr/0Bp3bA7bRvjv7QxkqIY8Ug+8wgw\nt97Zi646v/iPrcQqTUN9cyUHtTrejt37fwVoNAgpiuvGfXqfmWNXxKoxyel+\nXvROzXvFQZ2XTcIZBV3klhTfAyED9pVsSoS23I0zuAX5/2+ASLGQo9pcYSjG\nMyhDBc9EzNRhgEPaJiTU8U37HigsVY5SgD4XLWBhz58p4Bx9rKe8Llm0EfrN\nQdOlsuKtZfWkZLk3ez8wc+Rk18L2q7olmFzeIypYXRJ1PgARgi/dPrCLIBY2\nIfO/QRJvvOob+/NLpz+/kU7xRCw5Yaa1CeaDu5aPZAfT3unyEyyMhv4pfgL/\nBmJfVJ2HMd4UOB8zo4k8Zle+XxIa7wi/exnwBxwEZfkSw0CFgyb4ysqvJCkh\nJE1z\r\n=VZDE\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDe7eICgAIdKSQp/sto3WCiLZUHeq7LWOplZUPXvMaL9AIgcuGQdIfwghvEV9/I8hD1mfubyiX2ugQjm4PXkThikXI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.dbb8b366.0_1629414055612_0.004658154507970025"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.c6e3060c.0":{"name":"@material/mwc-list","version":"0.23.0-canary.c6e3060c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.43d2eed2a.0","@material/dom":"=13.0.0-canary.43d2eed2a.0","@material/list":"=13.0.0-canary.43d2eed2a.0","@material/mwc-base":"0.23.0-canary.c6e3060c.0","@material/mwc-checkbox":"0.23.0-canary.c6e3060c.0","@material/mwc-radio":"0.23.0-canary.c6e3060c.0","@material/mwc-ripple":"0.23.0-canary.c6e3060c.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.43d2eed2a.0","@material/feature-targeting":"=13.0.0-canary.43d2eed2a.0","@material/mwc-icon":"0.23.0-canary.c6e3060c.0","@material/mwc-menu":"0.23.0-canary.c6e3060c.0","@material/ripple":"=13.0.0-canary.43d2eed2a.0","@material/rtl":"=13.0.0-canary.43d2eed2a.0","@material/theme":"=13.0.0-canary.43d2eed2a.0","@material/typography":"=13.0.0-canary.43d2eed2a.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"2c417f32674c7318ccfdfa842a3a2cb3d57853b5","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c417f32674c7318ccfdfa842a3a2cb3d57853b5/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.c6e3060c.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-eIbTpeHxy/hIrZY/1FNhNFmo9h5Jh858pYqg6LZcX4MO5LXrUTcbOn1ZUD+uCdm9e4GnC8gfffYubYygbdQrwg==","shasum":"ee3401d0ca51ac113d631ae5478378f5347751fc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.c6e3060c.0.tgz","fileCount":45,"unpackedSize":232437,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHuMWCRA9TVsSAnZWagAAoMgP/R4Bd0EKyolXWyBta4lI\n7QwKx+uqhSr/hsrQUkirnxl8SxHrb5qmZxT3yxs1i6HOhsa7pH6tR6QLc3Jw\nUjtAI3YCPPsgOtjm8Jac4y84tHAOlC3BBsoC+KW+lXwgA3tOnDXPun2/9XSD\nX6iZIEukcnibmSfILBFGlf9Qt4C0RrNvyx1BMz7un4XvUMS3NmpLd9TFjNlT\nl/9amI0QdV6372GKBLBtR4SaZJbuoz21Zg7/AY56nhyLMr5hwCKd+EK3myEd\nophpChwfteiDG1ttreEio6CrJhx3dCTuJRlXe5ddeoXmQSIjM4U2ALGsrRDK\nNykW/tWcbzk34UulQj8nL6SwjWhySeWB3cCLOMdpDFmDxyKDC4K4tCoWKxhM\n6VdUGOgh/o6kwI2tnu3GnYzGyHLg2gooxqZM6COCja8ChEM8sGCGIgZEOlWR\nzLRLy4HkGalsSoDmA8FcrN+yaBv6C1NccwXEzkTwgLkVcGBa3hlzRliDZn18\nNO9Yzvn9ObcpMMeU99hayT1J8TNBu4d80gKAjrd3uf9knXZ/OqgmIFIBDrhS\nhYODOrbDJY2TNs9DwmEQnpBu8SyWyMGO6NraNS+BmWy2fnjoKH7A7aokPPPj\nO/wZPTrF/DXafrEnSdUJgUilFV0qZPpq6K3TlD1NoAVNIgyROgSe+cS+cozX\nkPLo\r\n=X8lg\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCG2YKr0X56adCYTGU6NRxw2NlL3oIjr2yfP0W2g9AAAiALQvEIa5XXxx2YRV/AGLg2fnMZrVrxHa4HFKGOW6TgNg=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.c6e3060c.0_1629414166462_0.2947806797066692"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.03120b7d.0":{"name":"@material/mwc-list","version":"0.23.0-canary.03120b7d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.0a9069300.0","@material/dom":"=13.0.0-canary.0a9069300.0","@material/list":"=13.0.0-canary.0a9069300.0","@material/mwc-base":"0.23.0-canary.03120b7d.0","@material/mwc-checkbox":"0.23.0-canary.03120b7d.0","@material/mwc-radio":"0.23.0-canary.03120b7d.0","@material/mwc-ripple":"0.23.0-canary.03120b7d.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.0a9069300.0","@material/feature-targeting":"=13.0.0-canary.0a9069300.0","@material/mwc-icon":"0.23.0-canary.03120b7d.0","@material/mwc-menu":"0.23.0-canary.03120b7d.0","@material/ripple":"=13.0.0-canary.0a9069300.0","@material/rtl":"=13.0.0-canary.0a9069300.0","@material/theme":"=13.0.0-canary.0a9069300.0","@material/typography":"=13.0.0-canary.0a9069300.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ba0dc47ad891e00a21e2d69aec6ec4c6dc83e003/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.03120b7d.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-dIfcHMv2IzaJCLSaRdoCQSsWziwjxzFKUHuf68bZcnz3RFvDd6NJ1kELg+GPgAkKuJh1L2JfGZojJqb4eJRQ5g==","shasum":"8216c23417d0ba2c4a6733b53a7872bdc9f65d54","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.03120b7d.0.tgz","fileCount":45,"unpackedSize":232437,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhHvcMCRA9TVsSAnZWagAA3L8P/R2Fm1R2Neriu6VEGjNP\n2KFS9FkHrMRQwMrEymB2/pg2Av12jI0Y4PgHqnjMZ7gNLHA+aa0LrucmFSXj\npayYMmCTRe9PS3P4Btc0Fc7WoSRbKSETqb6mYk5hgBNWVaAZdyid3m0xB2FO\n/W5qeCSCzJwS0Nx52zcbA86ZBDqDn52KFRKKUET+G0czdvvVvd2oblOYah48\n5ktvPSXIzB5BZuQflnyxpmW7WQ8qnxJQUcRxU4xj6E27+80xYgbKQxQd5cje\nNoaoTtBjCnNo6QlT7+XfzlbchOwCFFw745b1xpbksKtyEWZuaHDGkarNcFis\nSxzmQ4RnRfgbQENZ1bsndCa5L4UNC0PN8x3tVxgx6xKLXMm2QdNvN1hKycTc\nLYj8BxtEeYDUgTZpkFldi8uxGvZTcRI6c+4nGemSeZrirk/5YyHqf8/IHHcl\n9bNlda5+yHakLbxNywaBejxupZkf+ZCa2V56r5pbz3eOrcnIMqUyxG9wXdnb\n08CthBprouhcEGvAYKVy8FLD8kMxkaaSrajazesbRQlqd1Xjxxhix1hGR09s\n6pT2Ezh8J6nhhDnEFYY2/hl7i+MB7UPe+iNDMa5aR9SkaATftzh2O1RV3S31\nOic5zjV6cXADwrGiXmtQezNKaWV/oIMIVuorWSJuK6rKn62uspTownd0FRWY\nOtES\r\n=uz/h\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAh++llX35C9BtePQPhx5nIT1yrcep5dMWTXN+Eaxt8yAiEAp3cxH8lcsZvfiC2tDnYjedwqZPoxDHf3ULUJlCo7lK4="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.03120b7d.0_1629419276661_0.6333458814085222"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.d75a5f74.0":{"name":"@material/mwc-list","version":"0.23.0-canary.d75a5f74.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.0a9069300.0","@material/dom":"=13.0.0-canary.0a9069300.0","@material/list":"=13.0.0-canary.0a9069300.0","@material/mwc-base":"0.23.0-canary.d75a5f74.0","@material/mwc-checkbox":"0.23.0-canary.d75a5f74.0","@material/mwc-radio":"0.23.0-canary.d75a5f74.0","@material/mwc-ripple":"0.23.0-canary.d75a5f74.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.0a9069300.0","@material/feature-targeting":"=13.0.0-canary.0a9069300.0","@material/mwc-icon":"0.23.0-canary.d75a5f74.0","@material/mwc-menu":"0.23.0-canary.d75a5f74.0","@material/ripple":"=13.0.0-canary.0a9069300.0","@material/rtl":"=13.0.0-canary.0a9069300.0","@material/theme":"=13.0.0-canary.0a9069300.0","@material/typography":"=13.0.0-canary.0a9069300.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"ffbe861a3137fecad60074a6f36ca1061f940cf2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ffbe861a3137fecad60074a6f36ca1061f940cf2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.d75a5f74.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-+rFxutQWk579rBWYccEkqIlwrmaf5TkM8hz8ps0nKxiGLVFEnttI0bef3ZfGJ4ahUhAcPEBNEbihAPFl+y5iWw==","shasum":"666b8187dc1f6579d8a8650ff9da7793f841a5ab","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.d75a5f74.0.tgz","fileCount":45,"unpackedSize":232437,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhH2BYCRA9TVsSAnZWagAAkN8QAIqTq07kQl4XEzGjTmX/\nyy3zuCa7c2FlRFg8wgJ109pAdBvstYrLT6EirCgexUFq4s3ta24PxaT33HHH\nezlzCZSuqzgXGWfmc4hkRvrMPfco3djmLqhiilyufiA6zWcXYE1fD0tiOB97\nd58lmLf9kU7SkOarXcPrJ5GH51AhVlKNf4RagTYrH8uf/rP9TwEZ0OhL3Fp9\nTQe0Zf/c6G5p1QQSRGo8vf1wRDER9s7Zqv5wHz4z10tu3KjMNVn+D0TkQVP4\nbVPvQLrG3iPTcJF+8Ejl7vicZW9vxrQtqg2d/HKZOD/kuHq0G0Yu411fXqeH\nfOUWUTw59Mo+bBLn5uoYYowObqhNjtyWvZp3pZoyOw1UHoEHcMAO6CdBq0kz\n5AkFU2JNhG7ONlErHFZhJyi1H7THLl+DKSgds1dqWJwsj7EYDz6cY8Jj6967\nCQfTAKLhkzfLNLH3bQKLBuwZ+ZARXrqeVrtbKhIcTRWtflm8XE7YtiEdkjlO\nrnXj4eadfW2YFHqpwy4sP+CxddwL3vEcf+aU78mFmHM8wJEVju+NFkguMjtr\nNvlfm3R7uJ/pZD9Kqsx4cEkiWJuONAE751rXQDaFXx7zmujt+3J7Zb7nVI4A\nQidW0SuZphaAToq2hoGZQhCF+r2BAAN4pdga8VXYYjS99j8iU9BMvQ6CIhai\nxEH5\r\n=t9cx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGxDLv1ySVGPPH7RYlPglDG7j1ovekDUeDKpMTM/uPCkAiEAi09PskdJvMauAMxAlQbIuOUwkwsz1o4lan7BUhgxHn8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.d75a5f74.0_1629446232662_0.22272299523387407"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.3d79ffe7.0":{"name":"@material/mwc-list","version":"0.23.0-canary.3d79ffe7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.0a9069300.0","@material/dom":"=13.0.0-canary.0a9069300.0","@material/list":"=13.0.0-canary.0a9069300.0","@material/mwc-base":"0.23.0-canary.3d79ffe7.0","@material/mwc-checkbox":"0.23.0-canary.3d79ffe7.0","@material/mwc-radio":"0.23.0-canary.3d79ffe7.0","@material/mwc-ripple":"0.23.0-canary.3d79ffe7.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.0a9069300.0","@material/feature-targeting":"=13.0.0-canary.0a9069300.0","@material/mwc-icon":"0.23.0-canary.3d79ffe7.0","@material/mwc-menu":"0.23.0-canary.3d79ffe7.0","@material/ripple":"=13.0.0-canary.0a9069300.0","@material/rtl":"=13.0.0-canary.0a9069300.0","@material/theme":"=13.0.0-canary.0a9069300.0","@material/typography":"=13.0.0-canary.0a9069300.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"4d51b5574d0d1d8166f9358a39a5d3f2b4c728db","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4d51b5574d0d1d8166f9358a39a5d3f2b4c728db/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.3d79ffe7.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-yxEDw29vME6y47NtveqjipEhaoISZ8AvLpxgvsDuLO+iug5LKl321XTIeULK9p37I5/ziZchlSrhfMaSlOOEow==","shasum":"d66a8fefd594bb830c5c7a266a9e0486b4c0a7d9","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.3d79ffe7.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhH+S9CRA9TVsSAnZWagAAILcQAJ9ZZE3eUZViYJaWAIrb\n0k6SuSFaH00RF4GkPbdwXg9hA+5iV5pYgg4n3kEUvqTRRbsx7qxL7nDMQpf1\nNbRhIYQ+9q415lnKkc62xlIxA69p3tquSrqXzVDrLh/gbkp4cb9SYzN5EJpX\nieBk1cpJgO0gB/HtDWeXi7V4eMkvHnLgh06nYgdbhGbB7xbH9L8U0kuSm+C+\ncPDCbU2zaHhVzuqE+b+R64X37FeW2f6HaC8llRHLkup5ap0eU4IxzTUXtuyC\npEP0Jg79XdIdATe50R598bUWES9mljRi4wLInh5TA30MVGvRn33JpITpr73H\nFbq9OldRTwijzMgI46p+O5tOna3p7yA1vF43HbC1mcB/hZbp3v5JsVe4uvWu\nusQxNSC9zWSKwwXmwtv9gd30iHAl97Lia8owdPJs1db416MxD0TTjNHYlQUc\nVeARIskVo6n3pDLwUua890gEnfjE5DnDkD+wysUkzsny3VPpnQ1G+2All/Cb\nMxZJH0nXJE5uf5GUTb0rU5qYyKRUxYDjLU8e7RPwDn91YViAL1Cn3Z6lqlGG\n4nF66339yo+X0D2KWTyk+3ZTKiLX1VW4OGAKABbmNYXIfOJ+lfpO/Cg/iHPx\nO7A3KHDhtpJLIukRJq1uXVcYd+RGZsJRe18GzAfDD2RidnUrnUdPvA871/Ck\nF96t\r\n=dQhh\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGyv5si6WsIZW8/5ez+WXQZ94aXJOUQkn+2gxuz2rj1GAiEA0Klb9jJhCgtsCTXn+ikdAG3Gp44IE+bdsQYjD8X7M9Q="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.3d79ffe7.0_1629480124885_0.031239143413878567"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.02213ebe.0":{"name":"@material/mwc-list","version":"0.23.0-canary.02213ebe.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.0a9069300.0","@material/dom":"=13.0.0-canary.0a9069300.0","@material/list":"=13.0.0-canary.0a9069300.0","@material/mwc-base":"0.23.0-canary.02213ebe.0","@material/mwc-checkbox":"0.23.0-canary.02213ebe.0","@material/mwc-radio":"0.23.0-canary.02213ebe.0","@material/mwc-ripple":"0.23.0-canary.02213ebe.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.0a9069300.0","@material/feature-targeting":"=13.0.0-canary.0a9069300.0","@material/mwc-icon":"0.23.0-canary.02213ebe.0","@material/mwc-menu":"0.23.0-canary.02213ebe.0","@material/ripple":"=13.0.0-canary.0a9069300.0","@material/rtl":"=13.0.0-canary.0a9069300.0","@material/theme":"=13.0.0-canary.0a9069300.0","@material/typography":"=13.0.0-canary.0a9069300.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"fb5a30909287b897d793fe4c7cfca2cc93cae697","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fb5a30909287b897d793fe4c7cfca2cc93cae697/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.02213ebe.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-c0qUXxiSy+ws8Zlmvo2i+fBnPB2mrNGjMrskWPolbaSoZqxUwj8opAaJE+RygSW+QodGCYjtEthPfi2Hm6l1nA==","shasum":"eb650694643448332435d828c15d598223f41e72","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.02213ebe.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhH+XcCRA9TVsSAnZWagAAY1cP/j6NFtnBbyxgKxM9orcg\n0YvFqOHcPFfZqNMx7ZQOmQdvxIJNTSyvCOc80EabS1TZhRC58133k3PF7k/0\nQE2z0LvTF38lksY/cc/agozQARXqhxiezhMarFvvPwMcpiZkS28AysxHLHwv\nfX/TWxhrbDkqCrMVU0MSxH+eGV3bhld7T5lnKoqSQ5CiSK75Xjes+0cCPIMi\nNCUvhLDPnPLgsbfVSttwsBtfROUEMwIOIH0/IRUKvq8Ya46Rt/vkCUjcC80/\nlxn+bsCTNZ14PBVrWgFsLauM6/LIh7noRSss3NJFgAHl24Jj08Ymvgffe9da\noABumJajJskj7SB/tzFUFIjx0Qmb2ALF7fK+ApcN/MIyeQPVyitHVlYrdoZZ\nhhKZ8Bf1qHNxQ8sR0y1ujLcIHj8K+FAZlyQq4kUSi8EbSNmKnrtAPR4qYENC\nFPMSbGPMqe3EVTdenJKQxyP4qdUP7ZVJfz4tqpDz4vNUGKjvruWL6OXHiqEV\nQDa/Ecr/c37CLXzc5tMjjby/kDAiit9ZAoLv77v/9fv60biDyGzUK6Y81u9i\njrGdV/W9aPwXdhhnZYkrrnTlVE+SxYkLvRZ+Sx9fdSJAvILU2aBwuRyE39oj\nDBAXhm3tQj+1bBirAu7D32EBpausU+DTTST6P+fpqz970clTJQFOa+dpa5Oj\nqlD6\r\n=EZpx\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDORHzEJrSfJXp5uHjO0grMK68e2x1MEQCUKMY6tu1AKAIgfZ4Rj9rVu0shVgnnWG7HFRNYYYV4+ccLCC4z+WF06/s="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.02213ebe.0_1629480411889_0.7652778719437299"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.90a999b9.0":{"name":"@material/mwc-list","version":"0.23.0-canary.90a999b9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.7da413ed8.0","@material/dom":"=13.0.0-canary.7da413ed8.0","@material/list":"=13.0.0-canary.7da413ed8.0","@material/mwc-base":"0.23.0-canary.90a999b9.0","@material/mwc-checkbox":"0.23.0-canary.90a999b9.0","@material/mwc-radio":"0.23.0-canary.90a999b9.0","@material/mwc-ripple":"0.23.0-canary.90a999b9.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.7da413ed8.0","@material/feature-targeting":"=13.0.0-canary.7da413ed8.0","@material/mwc-icon":"0.23.0-canary.90a999b9.0","@material/mwc-menu":"0.23.0-canary.90a999b9.0","@material/ripple":"=13.0.0-canary.7da413ed8.0","@material/rtl":"=13.0.0-canary.7da413ed8.0","@material/theme":"=13.0.0-canary.7da413ed8.0","@material/typography":"=13.0.0-canary.7da413ed8.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2c4d7acf2d3387438092d8cf5fa7ba37ca3a8b8f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.90a999b9.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-FS91cjqlyKli8SdUlEPHiKi/nyr8qbQK05gKmMUJX3Y5sFedPR8M1HS2Yx1uEIVbGCX0wdqwFER6JklSZ9P4aA==","shasum":"8c106aa3d6de53be50b1a9a547fb287c82c236ab","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.90a999b9.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhH/fCCRA9TVsSAnZWagAA9FEP/0Oxpki31Ui2NTK50A8O\nRJ200MOKGlxmwqNQogKVvkcZnOQ5ivMy8z9btovNbAWnBRgmaaV5QgRNMiFB\nnDx3usvXGyxOqOKebbOcvzm0SaV5VCcPtnNp+QB9Ys19IgIwavXxJ5TuY3/e\nnxayF+EaxkuNCDhcJh7s0QCKpi7a+vd2r4Wc81FF52Rapm3UQSGFfvz6irA0\npckzGhBKyAU8FJ82QLsyDOeGriBoSv9yHWEs2I1AF/Z/WfZH5VmJHGMbBZlo\nwtyk5w0DCsYsNY1eT2rvqzQJfU4x/b3Ga76o2AhM18QLVoPMogpg09Vha+6N\nEXFAakGlKdBBVAjhHpzBi0GHCwy2ZmNbRZOEHaqpEuzCjcMlCb3HaZ49mZOx\nD93kb+L/LbBrIGhRsLk8xTFCKkOzOdO0UD1Qpl+deLKTvAqylVoZ/XrkK456\noK2JaDv9GA5D08xjZA0yogZlNddbq0KySQkBhlZNuGAbtac2t/IyaX+nCx2D\no9VGEGA5bRoONCGy6zofTzCUF3k4qvXJYvQQJzqSmkkJ/+Ot2jnu+bVIvIGX\n1cyWR9v58e8OQHIzwapbeghYjKmhujePor1ruUuH9fvC2rJDu0oGpECq1qb+\nO7DyPnbpVFqu3afg3SjhqqmFMkgMS0YCL8/A44IQUR4E4jhypWvAReoA6Roj\nhjcs\r\n=2JWa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDHvCDeYB/FXX0Ge5RZlWdlOb0kiECesrBMa6x9SkHvigIhAOTfbNWAKYST3tUJQtHI5qy4LfRRP/40KgBG5aEJHJMn"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.90a999b9.0_1629484994550_0.19138439366764937"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.6db58716.0":{"name":"@material/mwc-list","version":"0.23.0-canary.6db58716.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.7da413ed8.0","@material/dom":"=13.0.0-canary.7da413ed8.0","@material/list":"=13.0.0-canary.7da413ed8.0","@material/mwc-base":"0.23.0-canary.6db58716.0","@material/mwc-checkbox":"0.23.0-canary.6db58716.0","@material/mwc-radio":"0.23.0-canary.6db58716.0","@material/mwc-ripple":"0.23.0-canary.6db58716.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.7da413ed8.0","@material/feature-targeting":"=13.0.0-canary.7da413ed8.0","@material/mwc-icon":"0.23.0-canary.6db58716.0","@material/mwc-menu":"0.23.0-canary.6db58716.0","@material/ripple":"=13.0.0-canary.7da413ed8.0","@material/rtl":"=13.0.0-canary.7da413ed8.0","@material/theme":"=13.0.0-canary.7da413ed8.0","@material/typography":"=13.0.0-canary.7da413ed8.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"187faecfb35a3d9f67ae8a6ae1c83b5f796d3158","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/187faecfb35a3d9f67ae8a6ae1c83b5f796d3158/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.6db58716.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-pRV/Q3dj95MPZrrxCBjAF17TqOo8tk1t6aBVPmmG/cASvW5H8gKVp5HtL1IAVlgoj5dQMozZEFK7SHScdpzyxA==","shasum":"086d778904ec6eb9a3ef3b6ec8aa9351e96a79b5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.6db58716.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhI2WYCRA9TVsSAnZWagAAMRAP/3C6Os+cibPzPePZb9e5\nXD+kbNDTFxoHHuf7zOlpNF1BqGt9vLDqsq09dZdnFOY27VY7PEEp9cW96he4\nTSlt6DmfRGSc7pURmGMYD6PFr7fsXotOwe5HeN+qXyXopAOIydYSC+CKyU3d\ngRR2UZR58bzBpuWljHalF7mXpunp23CXjZB/ZL6hac61Zjm4lGLrwd+WK0cP\nlqgFU5WaLklbKxRwtJp6WOZiQCFXhY9rfizbmlgdYCkeAvVEQ2+irg+NCvSP\nB1y4HCbn6Q7tKAkhAPQy+PMT4GBjUw/BMCKKLNSxjeG1tUsAJ9WeeqgH/GeA\n4q7w66w77JttmSyz2d1gMX9dJgPmQVjITGtNHYoYKkUGBfSS9wqYu43w7bI/\nggo0YYWIrmRvkYt1PzfQAmX1vLjcKLak/tx9yHqK4Y188/ETc1IScAwSVoiD\npWQE2oYJC+vtA6CbNLC4Tg+TPUxDvifhQC7SieXiwr3h69JOpuEblww+QOzR\nMScUpqCjZPkdfeHWpCS2XyZYsAIiK/ns/LzJrVw/lRzLW+zOMWpovwqV5nNL\ns8b9JhKJBCFcFGFPLVpf8K7aMzMXbkhmqkG04A7BoEJx++9mxVisV0vepcCa\nzkjtUacEt1RDD7VM2DelKh+VWzwMZQYftjjSol2ltWzlOiXCUejtjPjMPo7D\nLaS/\r\n=l+k4\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDGcv75Ham0bpPxnE7mv2uYRsfqkIco0Cz9FrhLscCniwIgOh0rfn5H51ZaNCWHDvtv/erVjdxRNIJ6TSaIELhHMRY="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.6db58716.0_1629709720827_0.9943096241334044"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.9fb5bc35.0":{"name":"@material/mwc-list","version":"0.23.0-canary.9fb5bc35.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.7da413ed8.0","@material/dom":"=13.0.0-canary.7da413ed8.0","@material/list":"=13.0.0-canary.7da413ed8.0","@material/mwc-base":"0.23.0-canary.9fb5bc35.0","@material/mwc-checkbox":"0.23.0-canary.9fb5bc35.0","@material/mwc-radio":"0.23.0-canary.9fb5bc35.0","@material/mwc-ripple":"0.23.0-canary.9fb5bc35.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.7da413ed8.0","@material/feature-targeting":"=13.0.0-canary.7da413ed8.0","@material/mwc-icon":"0.23.0-canary.9fb5bc35.0","@material/mwc-menu":"0.23.0-canary.9fb5bc35.0","@material/ripple":"=13.0.0-canary.7da413ed8.0","@material/rtl":"=13.0.0-canary.7da413ed8.0","@material/theme":"=13.0.0-canary.7da413ed8.0","@material/typography":"=13.0.0-canary.7da413ed8.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"492fb41175c44033912a37c69d8362579b70d081","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/492fb41175c44033912a37c69d8362579b70d081/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.9fb5bc35.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-HDUoyUliC/A5E2SbfBsYeCUXOOLnA1V8ChBS8dqKj0oSwKhwUNKxYPFFyLmlJh52kEEueHh5chE6v7yRwxraaQ==","shasum":"20eb8fe88a04229c78cc803ea7c7604bf22ac0d4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.9fb5bc35.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJCZTCRA9TVsSAnZWagAA34YP/39jtH5s08wYvZpVFxcn\n+Q4BKs+2cUP88KOvLMzZM8zafzdNvvG001zPxb9j+rkgVFK1SZoT4HdjMGFX\n7DdrlGWEKh08nGGWmJS6Zm5RXFc1Jmgmi3OXHcd+6LsP83VAIRZqZaM6g+DF\nfL+8CrW+OVRyvObCVrTLxc7i9ehpHzUXAKzwTtZNoxt5+Zt7bdE2hThRgqkm\nq/qeS4Em3ySEdlFHUPTel/BEHTcqvHeIOc18tDUKEsDugPKDlqPnrzmFO6j9\n/pJ1v3qzTBSNivroBD3VVa4I5x/TQAfQi3DaLgSgUkh24obJp2RC9ljUIrBH\nMzSNzAxidTquLeJx+x9RqH363L+Km9uJfm5uDfWMZ7im1rZzVYOxkPdPKIk4\nGqs64S30HpmJbE2sy5pcTakYG7vwqntuo+NMDJaLLRqMaBHbF0do0YiSkZTF\n6pTGkPhg++EOM63CnZQUEBsfB7bSFfOpMVipTe7ZC1jrLoP6vtGBRBA9vdFu\n3M92ViZiii7qR/u3DL0QupQv4CKlwrrAfQXbkuZZf0R8QgOLaVlaFvQG/iyu\njeGFjbuUF2p1kiItlLa5z2/864NFX/n6uzi3hOeBehCtUCVxGkoRzRbegXMW\nXRiuz2T5mZqQTSP6UN03OYQtwPY7RW/pU+kkCQEvlEurQbOxKr7/lqLSLIl1\nzRDU\r\n=7ISu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD4M199aXaCfwEIKQL0ZvlfvGfUcFtSxNefcm1xdcJnDQIhAODFXTZe/i8XoA/ZWKzEjXDFdceuVCO2nVmOm+Swo1au"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.9fb5bc35.0_1629759059394_0.7559188834493058"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.ddaa5d8e.0":{"name":"@material/mwc-list","version":"0.23.0-canary.ddaa5d8e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.ddaa5d8e.0","@material/mwc-checkbox":"0.23.0-canary.ddaa5d8e.0","@material/mwc-radio":"0.23.0-canary.ddaa5d8e.0","@material/mwc-ripple":"0.23.0-canary.ddaa5d8e.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.ddaa5d8e.0","@material/mwc-menu":"0.23.0-canary.ddaa5d8e.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b75a351219e35d414333913249ef19e87282526d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b75a351219e35d414333913249ef19e87282526d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.ddaa5d8e.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-6iN+F6T/93Io80UKlv3bt7VfSuGwjqgOSYtI5jJSEQ3kTYkzc3sru125Se/UxQY8vgJ1mWuYIm1wwuVFXeBZzA==","shasum":"55aa9228ad51b81f75be928ca0378c8488a52561","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.ddaa5d8e.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJT90CRA9TVsSAnZWagAAbIAP/RBPDquY1s5klSf/lQNb\nx/0ivNPZnUgW9qLZbucQC0tRUamq8AyIcQ2k8cvVimPVg80PZXIzryLJGGwx\nuAF2RvER2OG1iHpWpUFde4PG1tJVfnhDPG/yhOscugrZVIKk6WARsdPv02Kw\nUDrV8Fe6eOVIPD9oaLyx89sCdgvvjGT/GhGV/ptPYtnT/MfSyxt9gIxsby5W\niqvHE/QB9UnfUNB3mv8EaXVDxMFYxRRuwL2UJJ9jTIzz6HjL8bQw3Ss8F+5k\nC4vwDfcDybZXzzm+/5QAs1KOdwL9LNMX0uGdNRdSc8R1XnSWMmK2cH7TvTpN\nrAHim883Vgd09QBOzJgl+iBKz9yeuw5ZkFik23s5adLt4RNX5MXfLC4LUQ0F\nqQfh0cY0FqOI0oybm60d8BYolzEmvwyn2mmfKcJEqj0vJO/ldL2NZhdw+jNm\nn/u6106e87ZBys7sfLzIqUE+ujU5aTvkA9Kjg2SLuzCuIxszlxrbKEgLWSjt\nn1h2thyfNjRsDUWgZvz1oR4zhBRFv8xt7BuvPo58JjIIT4iYMJyGH+Ll28EC\n7yntzHoRbOatDBFBeIWXRrQgeVyqJNnTbLxej6UXRVB6vE39hS/AX/bst4AF\nHl9ui7K5cs3qHWsuRX7BpfFwESinTAAIOsOhSPL7Q6rXWVOAv+2k2imYlhad\nVtqt\r\n=4Qyv\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEcXwfelP1DAwtCeBvFsDOhrchYMPJO+EKd/3cFvQlylAiATWT/zKvA1AYFYUR0cceHvGYRVwv1QuT9Xj00d59d3Lw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.ddaa5d8e.0_1629831028770_0.21288586529230868"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.756208fb.0":{"name":"@material/mwc-list","version":"0.23.0-canary.756208fb.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.756208fb.0","@material/mwc-checkbox":"0.23.0-canary.756208fb.0","@material/mwc-radio":"0.23.0-canary.756208fb.0","@material/mwc-ripple":"0.23.0-canary.756208fb.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.756208fb.0","@material/mwc-menu":"0.23.0-canary.756208fb.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"f13e06c94f8ec287642a6c4a258c32f5be7a17e6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/f13e06c94f8ec287642a6c4a258c32f5be7a17e6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.756208fb.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-463SxJ9LGgEFg7m/crs+fjzcoNFEhqDJL1co6vVEPrTCKx+CEZkOTcY0h0rsgLnZDa8rUzqW+Fvf6JPgCyl1Lw==","shasum":"edae22744182d6829b0728c481fa851508c8df4d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.756208fb.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJp88CRA9TVsSAnZWagAA4q8P/i85++9ZTiJijt8pNVRQ\nLUwTblxUayteUIMXRxJ4qSAngmvxRkAkQeV7/F8uzzWTnw9wTZubmMxsQLwC\nzMORb1jG7JhB3nzCY3ey82n1t0l1U8MwStWhpj84SD1/C2rjDyPKzYQARw06\nm1IFCI7er3tEFffl05EBFZSWPFPyKz2+nSD4gioA0EF8KQlMTMXUGBzwRCoa\nD3ymMU85sSbE6Y5Jz351ARAs3QLE6IgrW8WsjVHUgc0D4V+pkTalFpN7g9v8\nj+HrktuAvJbLMQ2I+MqMH0qTAhxpoKwbP6G1CRJU8BI5gpOR6tNYHO+1Yary\noV01CC56p0PZcwPOrGm2ichqLpS9jFgdfoQGXSiyf+atTtW/kLhSajha0hHJ\nk3ibxTIG6cMUAOUd2MJrDMCoBqThPCSISyQhKRyiNHUKpYjG5FjXioD2Ixk/\n5DXjetJMXCOkaIrDagNfJ6+fiFmwufdk2RI0h//TPwqfWjjhaCvk8UPSSBk3\n9vRlvOIXex29lMCv+0oWvdbODeTeyfSlhrx4LMHt6XZKpKogGTGwdp70P75F\n6bgtaoWoVaQKoMvamAra/AXkaNDYUVr1OsIsCM6/WnqtkoMklSTA1K8O0ZHs\nzZztlNq04SGejZxMjObqzpW9OcVaSI5lxOIPAOXLy6VLCUX1e3q0/CIEs1Ir\nIsqJ\r\n=moND\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDomXeyTEStJ+1GsklbbPsryhS22bAoIT3DhaMBoZqfnAiAy8cZJ8mbojairCa+HBVXny9qyCN8jah3+a47et1IrXw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.756208fb.0_1629921084303_0.022674648344518378"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.9576dcd9.0":{"name":"@material/mwc-list","version":"0.23.0-canary.9576dcd9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.9576dcd9.0","@material/mwc-checkbox":"0.23.0-canary.9576dcd9.0","@material/mwc-radio":"0.23.0-canary.9576dcd9.0","@material/mwc-ripple":"0.23.0-canary.9576dcd9.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.9576dcd9.0","@material/mwc-menu":"0.23.0-canary.9576dcd9.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"0d9211bc7f0c9c96cb4dc480ff59ae633f722977","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0d9211bc7f0c9c96cb4dc480ff59ae633f722977/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.9576dcd9.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-Wlj9hl+KjfDhNO8+4ZuBHZKU5tpK1ZiA4XOVPF1QJxtwaAmK8cNpCimeb4ZuToc1+Q7V0kzR/WvSJj0bZiuVKQ==","shasum":"2e361b169ce036568be0440effe3e3ad70cd378c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.9576dcd9.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJrnCCRA9TVsSAnZWagAARucP/iLj0XGFPGuqqgoRPKfv\nqYMu4eHgRC58gTYUrCTQ1k5dM2PHhAuMjQ7sCZSoWK6P75CEI6+dTtNdUgdQ\nla8ia0uDOSMgFJGWpzhT8EP0wfBFVenwQAtpRflnE3g+SI9MY81Brxeo0EVj\n6j29/WivZza4jyeFdn9oBn57TX8bZJge/uTonptnlAeCab+FtrmoZ75rMLuJ\n8lQUVJ/Epdt9YK5Dpanw99ixpCBYWPfhU3i829yrdBi8ddscf5J103szC8kL\n9LW9pI4cdOsxHpzYarehZy0VNIBo46zea5BRubY8vvWtYgvC7hHPlB5ydrW5\nA26uqswP2A8vcdpuAN7d+iRi9i+pxvuusmXQ/02QKao1S5ZgPcafDbfzKT7e\nQZ9CCw+B7CMgbXTO06mQhrkSn6JtoDW90kzWYMKUQO8FKoRH1Wut2WV4/XPo\nIDI1UfmbPDW8noInh98VG7Rm4qGk987ZjlBsb3Hphs+72xi87GPEQOwPP3tD\n4YCow0nT4CoT6B/uB/XMUwujK1Yxcl3NQQdyfQ9Jrg4A6hEcM69pAKktMzZ5\njxSen6iQIcPWdIy9Uiu/1pBp/98A1nSAY9bOmml2wDTQVKclSLrZ1Z3Mvrd6\nIBQNzoznBes5wZrPgwJ/ynoCVfTTFS8TYEQFl6sD9Hq/JnfPZJ1UnAhqHl98\nBJk+\r\n=gVWO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDoZu0RaIeOQZ8W6gIDbHyL3XeED7KyrGWdpEFYZPE6EAiEAtwG45CrfSWUkuZms0DiYfxAxkx35UJDW5jb6NHfK2hg="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.9576dcd9.0_1629927873998_0.6616443181329703"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.7531cf97.0":{"name":"@material/mwc-list","version":"0.23.0-canary.7531cf97.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.7531cf97.0","@material/mwc-checkbox":"0.23.0-canary.7531cf97.0","@material/mwc-radio":"0.23.0-canary.7531cf97.0","@material/mwc-ripple":"0.23.0-canary.7531cf97.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.7531cf97.0","@material/mwc-menu":"0.23.0-canary.7531cf97.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"1baa3308fe03250097e96c18c61446a8c8014706","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1baa3308fe03250097e96c18c61446a8c8014706/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.7531cf97.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-6N2sZj4ApiNidHWxIgz3HH2eeE5p8UwBIt8XTquArf7gfSeqcJg6z3+/F1OTETSvcWc1h+b0LqyB67rura94ZA==","shasum":"7eda331f96c7af12a2833eb77e97346abd4c071f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.7531cf97.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhJ87ZCRA9TVsSAnZWagAAZuwP/1PvqGTq4KLh/NMAaWtQ\nrCgcI69A58je91dMagJuQPYCKIX0wAA+Y5/Yg+/97VS+X+SYq249tjJdkXcV\nRL8QVe8VyWbdeliCnezEIKEiUwg38L6Oj13+gvET79O7s7OSsZa0Gqv2TqzO\n7utmRpx3eYa4tOznxfSLPCq2GYwqx1rR5KdArvrCCxP4NyAQeqnBeyg+Woqg\nr2PCCv+QvIDtSTZyvtg60I23OjkzgmSyxk6l/6Iv9fSgxHdcplIwsSiUbo5p\nglTinRP50ry0BXe9Ejk0mJT4ttEMPwcd10yDp7AgsVpRctkk0rMKBdk1O8BK\n+mBprS2GhOo/WVIvX4IkhOq2LGjhTI001U0JJmTXPQj1KsUM4DVPWyX+wMyY\n8J7W4EJtq1u+LTkidIhOa78KFKC2HYcxasm29tzlyLzbMyeeQdGRUckwLlMZ\n7p2ACusivIUmq2PB0meq+rWT0/ADoQIQNiyEVpg/t0MJ5njV0+zB/JaZb081\nsBgykz3UQzULFIJjqOl8R4dKPj4mXQzMWuhQIPImsSZVVQDp0sJomng7CuYM\nzwGrQZGsXELblKHjxGaw3pS6J4E2uAN0RlfWWY1k8NB13qMJ2OJ+KYUVKdK/\nKVlZpqyFvgCaPkLoW+sSs9FToSTQwQ1l+DtAwQDihHxH7xTboDIOiSjt+E16\n6OV6\r\n=bBLY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBKfl0z47G94UfnTKo3SL/cM5jmuPM5Gp3qDZ5dNwadaAiEA+8jF5nQk09yrFFPYv+GyW7oZSRfJy0hci1rdQjjbvzk="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.7531cf97.0_1629998808847_0.9390835458715909"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.3bab26b4.0":{"name":"@material/mwc-list","version":"0.23.0-canary.3bab26b4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.3bab26b4.0","@material/mwc-checkbox":"0.23.0-canary.3bab26b4.0","@material/mwc-radio":"0.23.0-canary.3bab26b4.0","@material/mwc-ripple":"0.23.0-canary.3bab26b4.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.3bab26b4.0","@material/mwc-menu":"0.23.0-canary.3bab26b4.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"1637f7d8d3b8a228e1a957d94d122d9a840a63d1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1637f7d8d3b8a228e1a957d94d122d9a840a63d1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.3bab26b4.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-/1SYcvTKMvJakWqZG5XMrAWqULdysBnau7featEUPRlgnHhBKX28FVl+CkjBYAmgSz851fPgvGzcCZ6ZOAsLXw==","shasum":"771caa503fb210e94faca57d10511d5ad4e94434","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.3bab26b4.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhKAt3CRA9TVsSAnZWagAAzmoP/A70Gf5eCQSOZtSQ/hVG\n1QO3GF9J92uSQI+c8wZbFtar2GMIhqZJ0iI1YZQatgcpFiSureAclftwRGDJ\ntK3hesvl5/0O1n1WW4lzqFZg8pSpQz4gsyfLlT1no7LXbuya4wFbJBQ+Qr05\ng4+DjNgZr82sHok/qzKM4/y9IZevpcJGn9qYvv08s7I50RPV3z1jsxCnvfJ5\n7UIfrP9okEHCThnyGyw/2555XCmsVDOjlKKrBzYmWGygA9EBsUSVCYSHfP8I\n6CjdahzG40gDHP+c3SP4BGS1gXlXE1GoP5jPvRUuY3VMR6vvM5maxXuG8bUr\ndzodoTubN0R6TnFEAZbWYir+njjcnahk/C1KjogXq4iFl3JQX+KWcs13uLNy\ncwmKiLrpnBam+SMml1hF3iKeJ0YOgUjvC0oszN3WV6ZTdDJV/v4bEVgnL4HP\n646Wt4QEag8iRnRt1FQkCOZeL9+TO+lBL1bhC5k8akLRuJUAsHrCkHpqUgga\n2jWcLK3D5JDzFYwqKu3Z+6n7FIquBHIw3bbtNEwgAdd9UfFm1Z5fDaQJ5pik\nU4dLKkSy7LckqzUptO091P+cD2v7/GKieAcjT3McNAw5p/laFDle9ExyOhWh\nkdKUHwwHwbpcc6O03K78TiUOybyCDzUFPdVNLP6/IvpLSc6BF/YNA0pAPkGv\nVWra\r\n=CcIp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDPRqneNVGjDTzekxTNuoq8w8yKWF6PpZQdwpu35B2LuwIhAI8wWgaR0JSJA7hpWP7PGh2deq4yragKT0XcwGFVDKRG"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.3bab26b4.0_1630014327573_0.38329705630994004"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.fab48bee.0":{"name":"@material/mwc-list","version":"0.23.0-canary.fab48bee.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.fab48bee.0","@material/mwc-checkbox":"0.23.0-canary.fab48bee.0","@material/mwc-radio":"0.23.0-canary.fab48bee.0","@material/mwc-ripple":"0.23.0-canary.fab48bee.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.fab48bee.0","@material/mwc-menu":"0.23.0-canary.fab48bee.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"4c3b20e414501a7103cbb2397163d4ed1c7d041a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4c3b20e414501a7103cbb2397163d4ed1c7d041a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.fab48bee.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-9OOqxetv8c9gnvG72SnudVrFVvlRbCOGw5yG7VCkbY/s5H+Y1g0beivAzSmqUJJDHYDlLiLZdaK4uhaBnwLeaw==","shasum":"9e982806aa365d2f9ad485260f833b6b32a29bd2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.fab48bee.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhKBDYCRA9TVsSAnZWagAAU+cP/iJRFIUflH0LdhmbvKSu\nMEODZlmU1kcYl3vC0q6e4hoj1fmEoX/RQDY1DJKPqnw4IL22tvZy0U833kHF\n7aLDKrBxZkc9SGOfgkImUw8HitH4ypAFZ8RX65/HP9j7IGbvQqORl9wgMZmf\n0FMeFmKyFoun7zaVp6ajDBVs3YNL6OOHb/P1j6ErxejLxCpXoyidWAXdEIwX\nNFdaEpE0NVnaR0nohAte5VkMjqbUySiO4JKBSJCnZhB69aQRxTSce7OKczzk\nZaArI7IiEIDNLG/c3c5T2P48jLMHw0J8rSzcqV+fZBua57fiF6aFZlyYwdQC\nSx4toOuE1etG2iaKkHaA9Cuc9nStGwW++0M3hsWOY0I/seKwaWvLgV+JjGVl\nF+vuEdgrqeravigaTGBOU2+inIPcOJ+syVC2bMv9Jfnra4WuicT3P7yZK9m6\nan4icsHDrmr9AkwJJUazUd7lQ8Q3RLj5LfChXi0iNxgN0yKOpwFjLWdEzyQS\nvMIxfMCrzENcK8lehYXlHCskTobLPkkpkEzwVtYxLwYnIpZ9AHNolTId+D7m\nTtVQF8RJjEkkknnZ6/76TUkCWB8O9AVtPFba6psTh1Hpr6olB7PHXm72YKJb\nYiDiCtN4fM3BxTbbUdfrR7kZCIa9JkXmc2bP3OtVda5FHbXL6rIqkmqPToHD\nANjT\r\n=ubaF\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD1gWn7yvojVImLxKSG+ua8bFz6pM0D6cKdhZNx3K2wnwIgUTCBT5toXlACX/jDt+fa0zNY8+4hEMSVhAoGNEw1DBY="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.fab48bee.0_1630015704479_0.09239605838303122"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.dec18df7.0":{"name":"@material/mwc-list","version":"0.23.0-canary.dec18df7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.dec18df7.0","@material/mwc-checkbox":"0.23.0-canary.dec18df7.0","@material/mwc-radio":"0.23.0-canary.dec18df7.0","@material/mwc-ripple":"0.23.0-canary.dec18df7.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.dec18df7.0","@material/mwc-menu":"0.23.0-canary.dec18df7.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"5fa2a5aa7531af47c2a307010d92ff5fd27006c4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5fa2a5aa7531af47c2a307010d92ff5fd27006c4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.dec18df7.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-AVBrIJeMvYOhLZUXl2QOUPUfGYiYPBY7+P5suwh3fBI5XETmClhv9jikEhugWo/9TEf9543Eo3EQ5VFUPex6Dw==","shasum":"4a47c986afe625d86030088845d0e94850de6cfe","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.dec18df7.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLJbyCRA9TVsSAnZWagAA0OQP/3KYPAqbfPedPO9clYDm\nBMpztS7lHkud7boV1QfgGW1zqklThxAswtKtzdhE8ogi8Em5F+mRM6pzCIFS\ndWRIDjVGlSvV5iHYSL4txLX0YzoMc30OChI5g9hrDwCsXnlqndx9LmRZqF32\nyCr42cgN9XR8oChI2KKPdgmoO6fJ29cZt9AaygIKxtNKEUlxCiPLNvpTe4cq\n9ozyqy3Iawt7a5Nikoe3lKFnFl5PHHoNI4Hms7Fz6aN2ft0w10yTeyrbesQG\n0vwHLl08xOcMxK5UALAdb1KYoT2O88HEAPjpN/MKOxqgeCkleceCqiUyRVR8\nRN/jSzB20S7unsRNbKi4yp0/Euspaec+BGNrtOfvfEXM48UvXVrdos3LZSEg\nDazm9I0VtMtHagaVkPlh1mdEGJjpK+jLqPHVCz4nRrM92hMlEyO2cKAUhvMK\n91VP0eNXB5TCvnBRMKQiRcrh9E8xj7py4Z8RtFZRaUIUYboiwJN9NSNhHGYO\nzKdVqucpdafibbjOWTHkDm8ziwDz5W+IwCguy2qY8oc/HCJTEkP8pBpS1qG3\nD5HSpxb8Jb3KaLjEToB2QJ5/xhSdeuA7YtFsiSCexBFN3OZexLiEMNDfMqlK\nQPNR7e2tLmyvLqAP4eVvvMXTYJF08j3gC8T1mBsa4OjS92x9AzC5ZOU5aa/z\n6Tv/\r\n=qnuG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGBKA2Ue6vpO1C6HQ5Zf1JI6ryc3BI2V0qjF3lO0T5SPAiATjm6lQVTuvWlpFjYiFfExxXVibFYJEw17b5UrPfdJAA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.dec18df7.0_1630312178599_0.3000474631824004"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.61fe5b17.0":{"name":"@material/mwc-list","version":"0.23.0-canary.61fe5b17.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.61fe5b17.0","@material/mwc-checkbox":"0.23.0-canary.61fe5b17.0","@material/mwc-radio":"0.23.0-canary.61fe5b17.0","@material/mwc-ripple":"0.23.0-canary.61fe5b17.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.61fe5b17.0","@material/mwc-menu":"0.23.0-canary.61fe5b17.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8d712401a1af774c1e4dfbf07ceadfd36aaeb5ff/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.61fe5b17.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-of3q8dPyRP7PHkR2gycQ8nR03Y/ZLBrww2dpFCQLMHAMp+ZMWvH3P9ApWGb8A29Dh46+W+SsmMNuRvaWp6q8TQ==","shasum":"dce52679d3340d2cb3a952d5ef0f106c4324f4da","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.61fe5b17.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLTGSCRA9TVsSAnZWagAAjOcQAKUGJDQEgnWRhGJvf+up\no9s5L3qjpOXH+O+lHH3Ryy8skMBk8wlE2XH063n4Dr1l4zNM6cjnoRv/gPnz\nn3K9WBZE3syRmXDjVSPjNFa+YuDlFUj37AHDAlXtSVygSjxD45AeSqyf8kks\n2kiQb/ndgd0XYamBPeEaMl/DnRAamwnQQOfhZIKYTGt8NjCn5SFjKRS6TcLn\nrwN14FlXZPMETk2nBOJm2qQxBdDhDz32l9AcD2rUGwPLp9+gQ7y0vhBsOeV8\nzSmvQG4W4VsO1INS9RmcpGu2FERw4xksH56TR8D0xw/6aynAtqk29FMdmI7Y\nV3ZAB1M3XBYv0gj6Lff6D8LpS6rLCEHQNDHvTec0zcXRDJfss+OhuuKrtUBy\nhKa26dAskVPCEUWq3fUS131MjKACn6afjWzW9jtYDw2VSBzBlb+F+55FDfxA\nv/hW++G+hCXQJC7ffOsmSiWjwtC6SG+OrSmvsD03II2PvsEztpim2rbYlz0W\ne7G7Ew+WEafFtp+at7HuEyVl5zoDyyTqP3c23oTyBSHoOol+Zy2NfzpOmHMi\nclBdemOYe+/xMkqhFeO/Ky4h9S7JeLavq0udynxIlFGaPZIxSeh4EeiA6oTk\n6lBU5oehlAovh+Q/J2wJtQ12a0NukKqWkfBOYpnqruo1/CGykLN8EAz4WibJ\nbcoC\r\n=bVC5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCg7i5wggpg1eH5QNBZFbnDiFzWy+HoO+a+x7jq5CrwFQIgKlpg+teMMy9tBKjnrgXjZmADpCF+Zq7BpYxe6b+EZwo="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.61fe5b17.0_1630351762119_0.6122080412553907"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.a8c31f54.0":{"name":"@material/mwc-list","version":"0.23.0-canary.a8c31f54.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.a8c31f54.0","@material/mwc-checkbox":"0.23.0-canary.a8c31f54.0","@material/mwc-radio":"0.23.0-canary.a8c31f54.0","@material/mwc-ripple":"0.23.0-canary.a8c31f54.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.a8c31f54.0","@material/mwc-menu":"0.23.0-canary.a8c31f54.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"7c390fe40361133076f70c076acba4dce24e84bb","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7c390fe40361133076f70c076acba4dce24e84bb/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.a8c31f54.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-A2hGSIDsRN6UJXUQEUDnJfOCZLDOHZJRancSrXVv3xKchV4eXD0+ZO87jTcIAwD5TYfEUdwEa3H9VXoMo/Otpw==","shasum":"aa8d9f02da179ce7bd84e75e2c47b6fb96395da2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.a8c31f54.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLUBLCRA9TVsSAnZWagAA1/QP/RaufabU3AVum+4ZUsm/\niJCJnRDQnutxSF8xIwingtG8dkZ2V60luUv1TG7OHhIl7SSWeWnk5J1Sabbx\nOIuKsZ9REXSTHWlq/nmRZNg4JsMo/xwgtEcDcM1WpjJU/2LeM9Xl+NnYw+bo\nKQnSaEKbm6Sqf/QdU6VxOWyBeX5DAS2A4xHSLmBIdTByX7kQ2eOTj9XCEJcB\nwXFCjNy6qmTs7HaY2FjJE655xiJTAnDj4KEMmq213xzhT4vx+ZC+xPPvUBOB\nrzxznO+azbttYBHP/IsRl0+WBw5IBiVD/j0he6+mqkJSEmlOBr0rfZ+xvf4M\nlbSzZIeNqzYCkEImhqcmQ1Gy/bJY/s4xAPU8zvM2TYcC/ThiyrCR8muMzAfq\nHJtd553jvhUJdoxB4lsfwh34WVZvRbfwJVeTfwmEfPg26B4zp9ocSBZ/yc5/\nyd23fXffqGRax9WR2NcRkmX/tpt4hGAr6oabQY5YGnoar87iub8N+l0KF95p\nmaIvp4/UqcFArDnuh/kyyjFzEwtkOjScKKBpoN26k8VUDgeO7hdP+QCgLy/F\nTwVjE0O7JIQZ5gdxrCUKgVcMpYZC6AMu9MgvedmfgJELdYgBWiJ4r5GDPAWm\nnTr8uAn9kcpN0wwqQYZBVlpv+3XOvhxEB7mo0RAps9C/TBQCazmK7IYg77xY\n8aHV\r\n=6PS+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBzMuAeC0XNLohEFcmwJBe6pwy4x6YnRJbSvrRXtO6CiAiEA1rjLZh+gTg9O80hoLD3y5tZMfs39ROs1qgA4n3cL8V8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.a8c31f54.0_1630355530947_0.3612923995443136"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.a096dba8.0":{"name":"@material/mwc-list","version":"0.23.0-canary.a096dba8.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.a096dba8.0","@material/mwc-checkbox":"0.23.0-canary.a096dba8.0","@material/mwc-radio":"0.23.0-canary.a096dba8.0","@material/mwc-ripple":"0.23.0-canary.a096dba8.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.a096dba8.0","@material/mwc-menu":"0.23.0-canary.a096dba8.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"0979a05922649d16cee4c4ef15ed0c3c3e9670a6","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0979a05922649d16cee4c4ef15ed0c3c3e9670a6/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.a096dba8.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-feMGnz8Ir7+cwNdbuuhKyumFstV7V2lEHzyrbSsr0X1Ga+1wwLwE8EOpqN8zdqUtY7dS4+PsgNjwlfUyZWxwDw==","shasum":"59ca8b823b0beb887625510d2f053c3731d99d77","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.a096dba8.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhLqr3CRA9TVsSAnZWagAAX1kP/ih02CEA8MQwTz0Ckdd2\nBGIV85an9fIdYBSiZzSq2ZOVGFtfckL2Yby+qYggAEd76+om4XHyjGdFCGtC\n5Jxikzp8Z5nw80DwONWDZxlwzyuo5oZ8ALSgUxsIyduKXhfZ9O13Cz95r3tG\nBGM/1ChEy3iT4oP7DSYqWdtwTjGKnjwxsweBLY5IVeAWLm/TLmDSXIc+HdZ5\nQoU2VoUeAXRJNq8mX3SMmwtnWmPeUdSEPKPo8tXGQdNwMFNdgiWHFWTUBzEt\nw6BJZXdgiH6VKB3YpJ0cNqqMudzA/yK1uCHBcAGW8/TnykzPJCx+6sns8heQ\nf9T7WUJKCVTKFEOO4cud7DRn2oWyHN+18ibmTT8lhZfuXoc+jiwZtbnhElf9\nal+Q+qdkkTmlyjszXtgCqD40SguP6juSo49FaXzQRP2JGrA1Tz4AriPPtI2w\ntP2I5wJHCQSFFtTSRx7EzjT3+p8KXgguibIVZhJwGT9hP9bmyqXMtfRl6hdC\nTeauXD5S7I630b390ld2/1hv9xUvO5lUF3DUZGyHAmIfmsmjhLSlXdH6BoEw\nsP9VipPrmf3C3SRbb8BlAYfIdAI+NmG8UKlqCKWG54mHDwFNtvWr1/QEGpot\nErETY8dmx34lfEVKe/CXPfTAMepI3WNZBCR5sMvb6QLKi2ISgu+lsiS447XT\nkKH+\r\n=Mf+V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE6/qrPrjQT+Ti5ZB1NaGeEjesKWbVt96+Dvcdc8aY+rAiEA2Bh5V066wz3t7rx3jJuHZwwk8Thgi+nOOD7973uKyME="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.a096dba8.0_1630448375649_0.4032628057868861"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.7ec04d47.0":{"name":"@material/mwc-list","version":"0.23.0-canary.7ec04d47.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.7ec04d47.0","@material/mwc-checkbox":"0.23.0-canary.7ec04d47.0","@material/mwc-radio":"0.23.0-canary.7ec04d47.0","@material/mwc-ripple":"0.23.0-canary.7ec04d47.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.7ec04d47.0","@material/mwc-menu":"0.23.0-canary.7ec04d47.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"cc39e72f38b02c8cad467741a3eb549b35590ddf","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cc39e72f38b02c8cad467741a3eb549b35590ddf/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.7ec04d47.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-VN5sAiDnrM2t89GwD5Vpb8d2qy41Znn1f+VTZnrhBz93ME9d5AQ/BNE4jkQ6Fq1uJ21ooBQEQtPIPWl9NaB+8g==","shasum":"a6486a16e47e302417b07a60a72d33ec9ef524a7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.7ec04d47.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMV2MCRA9TVsSAnZWagAA0BkP/jDW8ZYbnp/e6W0b6YWt\nHAonFKei0M9wRPuMJtwvIdJVzxXYDqqQod1lSynL/zFe5zWRNiPeCXRgBXYM\nVqLWGBtGRfcVpVUj4QiL82Z3D2Ow61qa/NcuoBapjuRiJCVWpMYh/K1chJAc\nDgmVqBaUANCmcsBYSm9jhaK5Unc+6bn3rp74kCM9c/Il5ma1yDHsMLv4DexG\napS0URLeH71yVTZ4L/6xCvxl8XL/RgbstKl49qkcb7Dxnq79vnyzezQ5TGmD\nzUcWUD1Kynn78YJ/6Nr9vaM9X1NvOCWR9/bsbb6BGssWLAzJIDsgrBt5JucX\nRBfn/VbtqKE0pZN5AYC0ksfbqx3RQEER4Ay+oYDOM8m02o055CmvLR41PvKp\nLeJ73mFG1J5daojfbnDLitanzpeLUC+7MOr9vEfKjvD8/ObekgVy6UoJz7ju\nsryhQKHhnuKqJUO6eCJYdx5UrDgENDAgOz50hbDUzLMLG2i6X1IqW8jB7qIt\naTGzxpfxlCuredUTSCz6AYNJ/n/0bmI/0M6Kg7re4BDLDBbmukAB9HjrNZ0X\nXTfuNXCAgMNZRPGQkafc7XpYUkBe3vK5Nr8dg9JWYE6MhuW+qHvY19Sm0EzW\nwmhOcWBDqvKFqK/UTCWsDOoxsNy5ltxu/0pAvy+HUNeH3LAnC36HxuSGEGj+\nkU6q\r\n=CiN0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCFYInEhC/2kHGWEazQY/kF9sqi5fFZbKKhyCMk+lSRwIgGvmdErG8B4ZdvgXeym5dQ0UngtB/5bKANmL7yOnZgw8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.7ec04d47.0_1630625163852_0.6832950830057272"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.d00b098d.0":{"name":"@material/mwc-list","version":"0.23.0-canary.d00b098d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.d00b098d.0","@material/mwc-checkbox":"0.23.0-canary.d00b098d.0","@material/mwc-radio":"0.23.0-canary.d00b098d.0","@material/mwc-ripple":"0.23.0-canary.d00b098d.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.d00b098d.0","@material/mwc-menu":"0.23.0-canary.d00b098d.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"918e9dc10ef626db369abf76acaf3266d5437d5a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/918e9dc10ef626db369abf76acaf3266d5437d5a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.d00b098d.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-kQt5jmhQf+b1alc/uxySinnpkhpuqxOr7nCKoKL72MMMnGF1J/KGdtg4c70RKp3oTOZ+qPWGK2JxokcSi4m/mg==","shasum":"b80278237507a8141bf2d265ea0a5f6b61af486d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.d00b098d.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhMpM2CRA9TVsSAnZWagAAtqUP/2LBJnVECpBmSi5t4E36\nbPUAM8giG9wd4OJo4mq5vFC75VIqKDvb0SHfUA3womJEM/xTB2gSFzaHlI2O\n88dZ96E3MR5sWnshwBPK4404hnniKKBkTpXGOBeMgTQHZRliRNPqS5j+oWQe\nFEvvoZ8yCBb/rh8D6pWQhKbzofQMBQOCXzO13DzsdiujlIpk+KklccNgDnNu\nU7ji+ERDhDyn6XdEogDG89xa9y9y1h6kkE/QwG1wO7XMzjjgirWeNnRtvrRS\njckLJgfoHk6HhsncRxauHbWoovOX535XOmbf9HltytOjySBDFmwdq3+21p4z\nUEV3Ce7HrCYVLa64hhHmXySGSn6fLKHOqtfoj3KYhUdCd5OSz0vXTcy7KgAU\n20CCkcSmPcXOQ3gPhMdhl8QOCCxZkMrWNx2FbT+XXHtd9CGM+A7IUsJFvs8Q\naaUyDddQL1pIMQvOK8YuNDs+pIZzu+LSd7GRIDKaMY0r7IR4oG2mLXXWsrE1\nbMHd9NWRPvP2vr6qsxXRFGKfbFvboa7ya05e975MShAeomTo1rBvsHMqJJY+\n2cC0c7FanN/w4HSF6MsCrD6o7Zdza2KInpVBaGgxk2wRgYYKlPrLQWPIBXt4\noWgCM8RuMZlvY7T1o0QyV7PZf/KOmSHO78auX8PKtsHZaanEqsO/AH7ovZiC\n0bIq\r\n=ZYfY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG1u8VQO4zyYrOyfSF3JrD480Kns4rdvdFmy31fUK9PUAiEAof1LK/9zi7kY9TE47k6z48+grgriEq7LoK1kJ8ycFzk="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.d00b098d.0_1630704438494_0.5907780300647862"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.f29b3352.0":{"name":"@material/mwc-list","version":"0.23.0-canary.f29b3352.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.f29b3352.0","@material/mwc-checkbox":"0.23.0-canary.f29b3352.0","@material/mwc-radio":"0.23.0-canary.f29b3352.0","@material/mwc-ripple":"0.23.0-canary.f29b3352.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.f29b3352.0","@material/mwc-menu":"0.23.0-canary.f29b3352.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"ec2a4fddd95f3099eadde4522a67d49cee8d1515","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ec2a4fddd95f3099eadde4522a67d49cee8d1515/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.f29b3352.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-qpcgJoKuhEgfGmdPNdY42nh07z4oCxNP2aR9z1ZSeGOYBvgmLmf8LCocMgYW1zteETRkyQ0dzMG55uK3I+RoOA==","shasum":"553afd301206d6a2f60c9d83b0ef81219d40bd69","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.f29b3352.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhN6yQCRA9TVsSAnZWagAA3/AP/RpDueY0s2hcIo+xxHgo\nbijqT1cMwgHJKcalcSViVACtCDkyMgZWt9TUAwNq9MUQ3KC80Mc7PDvjJEfC\nw3jrSmQADVeDdgmtUncO1xOmkqb+cdMe2cOjJVSYYie/DmsCdX019lp92mna\n/z3aA/RGHneV1lmGTu8HtmS+YN+097Ag3BNPSeEI1CZIFefizI/GdyrdAP9K\nMe16Cooa+E1cfYSsm3R9VoLcXoHZVmeU04AmBLcs04E2N6HnuUvjKaWOg8Tk\n1Kc/YzsSO1P3Zgw+HnQoVGwP7KZz0Ksgvg6ZFl/YpW4nkJqs96G7DWpuHnsy\nZxPytOnuD4IgL6ssKudAZ4pupDj9qGp90ElI6zJJ0HgvtNPI/2Ehm/hCDa53\nnpNVqh3o8qzcu+7LRg5R/g8WkVQ3m+g52Z6zV5JraX7BskE3Asbpug6TLFz/\nv4CUWjpHWfl0dTYbfXCpfbu9WrNMspABaCj5dPwCvsTPmdQSzVieRfIhmoKj\n1kBKozgr+dG07o2zUGRrbnErdpny0zHgQp1uhsGdhsSOM2JZUF+3N1gRV8fu\nRoAoW82CfGQRTbkRocI8u3zw6nPAFHI0HzGDbokfCRNZsIsUw4W7ZXOW6z4y\nCZN2/0rzF6CfcCU0+64mGZLT5NI5hkfvXjOPSBj4lNvzW4JJdcXm7zsV54tm\nnrZ/\r\n=W7Sf\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAQPQPDCKOH6ynw1kUFh78RVCUOvJaZzfOmvb7ueQtYKAiBG+5YeAnr4yR3Mm+SiBMHci7HWqgqLtJb7L1U/6oQbrQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.f29b3352.0_1631038608771_0.23143565847698633"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.4962a163.0":{"name":"@material/mwc-list","version":"0.23.0-canary.4962a163.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.4962a163.0","@material/mwc-checkbox":"0.23.0-canary.4962a163.0","@material/mwc-radio":"0.23.0-canary.4962a163.0","@material/mwc-ripple":"0.23.0-canary.4962a163.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.4962a163.0","@material/mwc-menu":"0.23.0-canary.4962a163.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"4bf68ec0db23b3011a5a8c0777452925411e8552","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4bf68ec0db23b3011a5a8c0777452925411e8552/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.4962a163.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-qG+Ne/bX+PjIypzjGkqLp9Fjwm4y/AGeiSjCuvtjIi4kN5ilMlxLW5V3VvkvhkPwbuQTLG2PDnbB81PKrX6S2Q==","shasum":"2b7a21d769c09ad91017d14f7fc62a66fb5409c7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.4962a163.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhN/uZCRA9TVsSAnZWagAArvgP/iw+WpOdMAsb0IlTvqsz\nd+1KdhMkzmYHg+rRq0P7AfRRlPOgLYP76UjsX9cbwCjaWCwhveMeOV3xVuwf\n5PopB2dwQfOeMBTo6sReRRe4mp9mwKiIkoanz1Nxt+g8p8VdhdKr/UMk097c\nXDP03M64xiKaaG0wdELOrzTOidRBXcTNgdDtD3nj0M5FWghhO+tJ4pHBVBYQ\nCdiNBFtH6sMKQpofL23/glLq4oPdcZJS6Q/KDFrkQsCD2axxM4dCjIYykYux\nK4IAHFSar7U+07+nSdB2zXL35z2lL48cAB2vsKd6gIEHNkrr4+r2Gjy1VZSO\nLxUkPFntyhFSV28/ynyHfAez07P2uFk6GAzHHLQ4BoYA9gHgCAMrfrj8J+mx\nluG8ajVy9cO7T2gibH1VD58GMp6TpdLwgG3VBn4MOEtDbQmue52wxEDTxziJ\nHzznCMY1jKe+jB10WzqAOr6cJJrz6iLpfMgF8fGrCnCxkAYSwOFLROTugyAh\nkDGOLNifT0TtnlOL/4o1xSrmdCLY11hEm+EvPwGF8SJlZPoI9UT6slhqTvQS\n+mhNoJzFa5jynz9MCnCWPlUq/J1ghtPmT3X5umvty9PvlP78GLA7qrzrpxqG\ncHWSDm8MC2SFlEbeAmK8xCzsfLLMO4/JBLnQIzYLIB92js48uZhW4ngJda+7\nYedj\r\n=dYuc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCEMI8A3cux0d9G0PkE9thUaalZvG2527PC0i+S0Ar+AwIhAJBrInUasAyjiLMQN8boJzSBgK2AINEMuDza8izhwPyz"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.4962a163.0_1631058841610_0.8936316259330181"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.33102bf4.0":{"name":"@material/mwc-list","version":"0.23.0-canary.33102bf4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.15981e9d9.0","@material/dom":"=13.0.0-canary.15981e9d9.0","@material/list":"=13.0.0-canary.15981e9d9.0","@material/mwc-base":"0.23.0-canary.33102bf4.0","@material/mwc-checkbox":"0.23.0-canary.33102bf4.0","@material/mwc-radio":"0.23.0-canary.33102bf4.0","@material/mwc-ripple":"0.23.0-canary.33102bf4.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.15981e9d9.0","@material/feature-targeting":"=13.0.0-canary.15981e9d9.0","@material/mwc-icon":"0.23.0-canary.33102bf4.0","@material/mwc-menu":"0.23.0-canary.33102bf4.0","@material/ripple":"=13.0.0-canary.15981e9d9.0","@material/rtl":"=13.0.0-canary.15981e9d9.0","@material/theme":"=13.0.0-canary.15981e9d9.0","@material/typography":"=13.0.0-canary.15981e9d9.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"6445a1dc819d694a36e630269c7d407b8f021e98","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6445a1dc819d694a36e630269c7d407b8f021e98/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.33102bf4.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-XpOaRrfkVUIvgWqoBeJg82CPUVVAIqFCeMGSIh13bNawmh7YjqozADDDPF4POAGFHIXiOMl4w8z4i0YETJuEBQ==","shasum":"4b80828f2aa6088e2243d819881863dc59d32d32","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.33102bf4.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOABVCRA9TVsSAnZWagAA5EUP/3Dp05pTYWFsxDGY8lGk\nnUKYgHbLiu1NtQDYh7e3VeKl76bCRNNmEdZz9qEtPbeGJmU62h+lc4QcBg0V\nsbFUZk30HSUeHeIKt9zgGFVvwB+52KI/7BuxxGNsusAwz+9Rx0+uGVrVwRwg\nSZLyY2Vi+93Q0UahztmzO9u36dP2PzAofr5H77vna2eSqUURqkm1TKUJqI4w\nBlY4ZFs+IxSDsesKVrlhnvkfqG4R+xK1JmJqZnj2P/7YXPsiPVpTiZQ5H9pE\ng7ksidZzagxIu6G/jPdgVAlnDVIhpDsk0P5+ehlBI+ejOyHMdUIW8JSOBS4u\n3t7x7bgFWQM2i4DPTHgFzUlbDG29RT/Xrk7T8Kt0cbakWkKXkRwyPy0iFiaW\nal2KYm4LzgYAunGX7duSngaE7+wAqu8U/f9EqUSB83oksEeODRA4CwTDu87d\nKnLKV3FKnJo4DKSF/dttie9qQZMaQ3fhg2vNpuX8XCppxUh9VblsQ/9CRujE\nbYqEzy2eNJZpq8dOh8ivpqbh2QW3vQFsqtV0N4VL14cl5yvuAq7rBY/uaAsE\n/Y7GxH9tcoI8w/UjHGbCWlXZv53IbRMp8lsO3KcSnRRnSvtm+b8mtBjCg8M+\nCozOaCHziIDMYjKEBGUUnwcRGnepL9gr89awwIRWavJ0i20Rg3gvLJpeEO9T\nm+nB\r\n=haUY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDIYEwCXME1pYzbk+51OaGkkEaKeoTeophXVHow8qWBaAiBhNzz7P4Bme3KeFuRe0RXAznMnwog9HLTJoRL1PsyV4Q=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.33102bf4.0_1631060053061_0.6112433236152299"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.76c68381.0":{"name":"@material/mwc-list","version":"0.23.0-canary.76c68381.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.72464476c.0","@material/dom":"=13.0.0-canary.72464476c.0","@material/list":"=13.0.0-canary.72464476c.0","@material/mwc-base":"0.23.0-canary.76c68381.0","@material/mwc-checkbox":"0.23.0-canary.76c68381.0","@material/mwc-radio":"0.23.0-canary.76c68381.0","@material/mwc-ripple":"0.23.0-canary.76c68381.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.72464476c.0","@material/feature-targeting":"=13.0.0-canary.72464476c.0","@material/mwc-icon":"0.23.0-canary.76c68381.0","@material/mwc-menu":"0.23.0-canary.76c68381.0","@material/ripple":"=13.0.0-canary.72464476c.0","@material/rtl":"=13.0.0-canary.72464476c.0","@material/theme":"=13.0.0-canary.72464476c.0","@material/typography":"=13.0.0-canary.72464476c.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"66455113b9aece74b59241859cfad64d4519568d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/66455113b9aece74b59241859cfad64d4519568d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.76c68381.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-vpU/opF4lK2YW+tB95TzRb4e14/k1v10wDDaBFIfGzDM9Qke0HP2grp1LqjupKqZ9Y9WzUJ3P+dS1Y5CMe2xHA==","shasum":"c229100bc1806f416cf2d93051b056b4a35d1fb2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.76c68381.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhORmeCRA9TVsSAnZWagAAZ9kP/RI8i0qFnIUjNlWe2h8P\nfGLmyu+U40y76Nb0sO8mpt+tw4bKHWJtQOMxrrChURIVcD4ETv1sRs8/6p7o\nmjc1OMysS9k0oPqGPtKKriO7xxfPsG730XmryP212ayu4ac7b66zNbYVuzLL\nDl9DJzjDUesNUoeQ8kvTSVAjJCAbGwahmuuWxM7wTEzKmUPrk5Dj+9lmrBTb\niOnYtPDpYaxZ2rNEtHQZ0Kp/Y+9kXmVPApYpTTDrXAw7d5eR1BpmCTqWqoGy\n8BoJRjnEJOvQz5E+reiCQQY6h6t740Iolwr6f+E4sq/vr4lNsbM8XkMgwDL7\nKKvDSD0kqllTAnaXajey5VFJKsqsaLg+eFkEKXnr8qZAn2oZrV/0nRqiKNLC\nKQD7JfbTPSFY6glJxHkYIb1DyGyo23gjP5uhDM/dkuDZ2q4zXcFjHJPubQ5m\nlxu/V26ktMTq3LrCjwSyNfaoRUxojzsqTPNc5VC9jd6t8ZRsMQp7mAIo0jQS\ntCjaRJkELT78ILA6ssp7Zn4K6NpFB7LxdHbUpMr3UCHQChr3/sD6+bXZJnCZ\n/mLAmwm9jzPdEMGvun9MuKjsU5W4bSGH1GRKbpjA3rJoF7HV9m06xiTtAMmU\nxnD1HrsyEzvEMe0P2NLTOkCrk5NGpmahDGx/DawmThVqcXYLg2V24iEb2bce\nI9XQ\r\n=jzD1\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeilOZ6xm+SexFY5UgdTU4WZWelHlbT6XE5OQSaXBCHwIhAOEV8K1a9CgtjNnN881P4M86624LTymHyfKiBx+CoVjb"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.76c68381.0_1631132062300_0.7845599974871695"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.17d51f76.0":{"name":"@material/mwc-list","version":"0.23.0-canary.17d51f76.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.72464476c.0","@material/dom":"=13.0.0-canary.72464476c.0","@material/list":"=13.0.0-canary.72464476c.0","@material/mwc-base":"0.23.0-canary.17d51f76.0","@material/mwc-checkbox":"0.23.0-canary.17d51f76.0","@material/mwc-radio":"0.23.0-canary.17d51f76.0","@material/mwc-ripple":"0.23.0-canary.17d51f76.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.72464476c.0","@material/feature-targeting":"=13.0.0-canary.72464476c.0","@material/mwc-icon":"0.23.0-canary.17d51f76.0","@material/mwc-menu":"0.23.0-canary.17d51f76.0","@material/ripple":"=13.0.0-canary.72464476c.0","@material/rtl":"=13.0.0-canary.72464476c.0","@material/theme":"=13.0.0-canary.72464476c.0","@material/typography":"=13.0.0-canary.72464476c.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"eac5c1fc9472a1c28736c4d8e0d423e195fe5723","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/eac5c1fc9472a1c28736c4d8e0d423e195fe5723/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.17d51f76.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-DhmfHm1plbg7ALxyck0Z0SxnB2faBwTO3BpaF0PZHSMbLweyArafN3Z9+C0J+R8jqcgsecGOYA9yq88ELZS2cw==","shasum":"87934f1c771bed44b4dddeb261d4d3e5ac1289c4","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.17d51f76.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOUbACRA9TVsSAnZWagAAo8wP/j9LfXOiriOgxg0Lu2qd\nor8tekWRTdAZrzB8m+EL/USl5oBVVXwDT6y6R4qq0pIiET+ahMgUEaMPz2l7\n5WSn1rEB6u6OEhCBBeZNow5A2ZaCe2CFjShJ4e5tWanbTS0faauAbCmnLwJt\nVCuW3DOOqeJC1SZGBLtodz9FtstSXlxMuxwwgBkKkBgvq/5XcBjjLRKHmYIk\ndexmBJuuuf7tWidugGgQc6KT5DxUzPpzVyvLYeURk5aCKNe2exFKYpKe3i5j\nexipibPJoUCbsd4cPSXcr9whEN20yo2GNhboP4stDk4ytZlZkcYN4pEoNnjU\nEp3tgLl6nsYQSVhJM+1es2MJGVmQ5DuC3O91ruLfP397QE0QZfWIE+jnh/YH\n8BIyswoe5tZxlo2rSlq2axnqkeHlBX+P3/3yK9+gnQa+S5sMXdxAl1aP5dZD\nG1Rk+UNQAUK72pBlsBqBAebfc+L4os8wmYgg15LghnEbUmoR4S7YmIE9qVNk\nwmwdw1QQQeU2Kgpv7Yxg2jPnIMP8ogA8XzJvOZyJZefZu6ELrOG0ijgRTZVX\nC+MVNnKHesUm2tjnN8b/FtwaQr7tdFXL+dBSCGARXyoPNj1qse56OWu16g0K\nBR5A/znFNcQrDvxGKwNZ6HCpMTspEjvcEOutVFUn8M4tPXluc57SJpDBmRgy\ny952\r\n=ZN5V\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB/QR53pJgNktx+D/6nuN/TIJl9iXkHO/lqsmr7QDaIgAiAafGLFXCRFVuz47xou5PWSBPNqdFfedfrBwp42nN2YIg=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.17d51f76.0_1631143616282_0.8371007295004884"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.3fae6c2d.0":{"name":"@material/mwc-list","version":"0.23.0-canary.3fae6c2d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.864798678.0","@material/dom":"=13.0.0-canary.864798678.0","@material/list":"=13.0.0-canary.864798678.0","@material/mwc-base":"0.23.0-canary.3fae6c2d.0","@material/mwc-checkbox":"0.23.0-canary.3fae6c2d.0","@material/mwc-radio":"0.23.0-canary.3fae6c2d.0","@material/mwc-ripple":"0.23.0-canary.3fae6c2d.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.864798678.0","@material/feature-targeting":"=13.0.0-canary.864798678.0","@material/mwc-icon":"0.23.0-canary.3fae6c2d.0","@material/mwc-menu":"0.23.0-canary.3fae6c2d.0","@material/ripple":"=13.0.0-canary.864798678.0","@material/rtl":"=13.0.0-canary.864798678.0","@material/theme":"=13.0.0-canary.864798678.0","@material/typography":"=13.0.0-canary.864798678.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"5647a60f5efcc7d6235a12c1bcf6c703db6d00a1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5647a60f5efcc7d6235a12c1bcf6c703db6d00a1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.3fae6c2d.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-f0LDwVc/ROMdjDtQakP60DicKp0p6glTOADRyouv7W4GR+3saqc8fjMoB9WukpjEIHPR4i0tQJhYiEn81sQlhg==","shasum":"a698d73b3689fd416a1ce1913006d5c61d2074fe","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.3fae6c2d.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhO6T+CRA9TVsSAnZWagAA0m0P/iE46ZIXq/507hrJIitC\nS3f30/x53EE+PAw/FVBwqwvjKAdmQXT1p4v9lrhj2bCt9K3DwbW0JRevKNmi\nVVGMmiiw8GrXDtDsivemoHCt5S/IPD/pvXmws2vQvyw9LyJbyLqKJYrgPCkj\nraU3KwwVwIH+zT2IWLh10oEBTWtI3T90qe82G2TDa/fWQZqUKYAnwxLnC5om\naaQXpeu9eZWMJU/xOOZtGolmXvrPuFPrVxreb4uCkY+BCb6vUdDzMOnett4/\nZ2e930mqlcjiTfyH4aEEXuxhkL4+08cdwXyNSeO0zgZ3fhZtRNYbGCHc7mFa\nn68cth9A8o7Rnv8S+2jI+yECFryWav0vbbypcV6FTuyUE69pbcvoqVhtIrZt\nZRcVEYLHn5sB2qGE8BnvMawP9pvctnre1Wghf5F765Qbn56sI6cZtnyDh0Kw\nwUZaabGTlAqf8ztvP6p905S6owX4u+AijSH56Y3RhQ/jdr/IvcUKIRi1B8qC\n0GjNUA+l3vjP18eTa/wpi/G2eSCyqY+Fng89W+e7ipnb/iTRhpp2hq6oOjQd\ny8fsnnx/jwvpLeZlRhNqYhE0gue5I8DIUdWC7zVB/Z+QYFQhZDapZMw3QRkf\n4HTUnD0g6rqm1CAg5X53enVbOR2oQSKnlynSAiW7YH4iNF3oMswmoDQwghbv\nJ8/a\r\n=/k3m\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDe0CYC5ic+OzwViIBs6pzMx0Dv1gNrOZB9n4VXFUw1WgIgXhWpZY1diXTlZzsDtGc5CiUdwUAAvpJt97iW+sS82Pg="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.3fae6c2d.0_1631298814369_0.8636038043287932"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.f1958c4b.0":{"name":"@material/mwc-list","version":"0.23.0-canary.f1958c4b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.864798678.0","@material/dom":"=13.0.0-canary.864798678.0","@material/list":"=13.0.0-canary.864798678.0","@material/mwc-base":"0.23.0-canary.f1958c4b.0","@material/mwc-checkbox":"0.23.0-canary.f1958c4b.0","@material/mwc-radio":"0.23.0-canary.f1958c4b.0","@material/mwc-ripple":"0.23.0-canary.f1958c4b.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.864798678.0","@material/feature-targeting":"=13.0.0-canary.864798678.0","@material/mwc-icon":"0.23.0-canary.f1958c4b.0","@material/mwc-menu":"0.23.0-canary.f1958c4b.0","@material/ripple":"=13.0.0-canary.864798678.0","@material/rtl":"=13.0.0-canary.864798678.0","@material/theme":"=13.0.0-canary.864798678.0","@material/typography":"=13.0.0-canary.864798678.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/e5f5a818f48eaa5a69419b7c2ef2439b4d7fc5be/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.f1958c4b.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-5DpM667oz9MY+dwAbjsKkH+v6YmSGFS3pnYJggWAGpi7DUIfhp3L6cZzGNuneITJnt/xzJoPoBY2+KuK6tv5YQ==","shasum":"8cd47809d6e2f7a253e94597e3fd3a9036a5f822","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.f1958c4b.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhP6SvCRA9TVsSAnZWagAAdOIP/A6GQxVHxoBXBNcmQEi3\nIw5wxTpCrhYTElo82CyVfm6nkRx6bPOvvCpvZovxq3k+QpAbz+6a8SSmT6ra\nu/ypv9CVdfBNHKsM3WG1MqvD5U47jAEaAVCQOGL0zcyAMEwnTfCHsn4Hwgbh\nEEK30M4b2ggJQ/jmfzSmAL2CsGuEP9POpz4xXv2fr6g7Vk3YxvpJZf+GP6Zl\nw6hJSyXXaMyNyK9TPn+hcLAchZE6ahkN0SZeM9bl2tyjgvhCWhj3qyrVmRLk\n6vkRENRojsXGgMcCkbnG97XdncJFR6Mo0rTsGUjt7VJ7V8zGQI4VK8LiNgYu\nlQs1EqE3LCs5WTxKUZVeRaXhTZht/DHO4YpJBeZy3tntyHDkIFRynkqrO3qq\nTNIANk4e+OYPMU0fsBKZjsUExpBdyF6yv4BbfASfspKMHwgSxyLaaFzJrR3a\nnOasmXBnGQ+OdPAnN5kop2m5iyyJJLF67kPArK9NEyS+AEpJaHwvLO0soana\nJP1f/ZDjSxuxI+jqJEwc49xA7gAl3ESrSwt9mUNDRfVfXXBo89vVZlmRFvzY\nUgUz8P+YpMw8TmUrSU+DNSn/1R72FNdKSESHs9j2tz6iahnfWoWtyt+39PQH\nyrFRSkTE7F28j4Y/s0kz3PMqq43uCQsy+FHuHf9meUKzSlGYsgQI/4HlipjP\navSb\r\n=Hell\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDDyqogBNoTiEV92I4i9+w3eVgZuXa9wJLva7GbvOdWmAiEAlaFG5heDPH+067StMJmFLt2M4o03eZEE4m+AwnPFnNI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.f1958c4b.0_1631560879343_0.1307341567932132"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0-canary.78abbd59.0":{"name":"@material/mwc-list","version":"0.23.0-canary.78abbd59.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.864798678.0","@material/dom":"=13.0.0-canary.864798678.0","@material/list":"=13.0.0-canary.864798678.0","@material/mwc-base":"0.23.0-canary.78abbd59.0","@material/mwc-checkbox":"0.23.0-canary.78abbd59.0","@material/mwc-radio":"0.23.0-canary.78abbd59.0","@material/mwc-ripple":"0.23.0-canary.78abbd59.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.864798678.0","@material/feature-targeting":"=13.0.0-canary.864798678.0","@material/mwc-icon":"0.23.0-canary.78abbd59.0","@material/mwc-menu":"0.23.0-canary.78abbd59.0","@material/ripple":"=13.0.0-canary.864798678.0","@material/rtl":"=13.0.0-canary.864798678.0","@material/theme":"=13.0.0-canary.864798678.0","@material/typography":"=13.0.0-canary.864798678.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"638a51a3b3f96617a9be7f61f87afebe78d24a23","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/638a51a3b3f96617a9be7f61f87afebe78d24a23/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.23.0-canary.78abbd59.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-41fE0V5W/n4XE3Sia4+JYkaV/L0JXns/CJ45+Jz7RCenM1c0RaQu3ex12yNJdeu48PAqsPPckinqx/D9QqxMVA==","shasum":"91f61e1cee57bd17a99a387a1c00666633e3014d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0-canary.78abbd59.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhP8IhCRA9TVsSAnZWagAAZM0P/i25nIJ8tlrzzxqmhd0z\nJQpK4cqGmFtX4H96gZ8CzoEFZILORStDM9TWDs7AG6bGopL/T1R03mvt59hO\nKcaYYkDcsoQd0zlrOq/J1WUynpXg0ZvIsF/AxUgNPqWEY2CHosTjm2xrQQ/l\nz6UXOySKIqiq2cwC7mB+DNvTrWz6N9IMUDw0jVFfOHf2JcbJZ/du07zkJkXT\nffNED7rMcgoM7lSRt1XTw00tIajpy56HacBE3mVd7Sqf+jgrByeVFRROqPrp\nUOLttK4J6f2FPFyLtkxbrBhBaZxWsMm7jLmzXVVlPk/fXVevGEZFj6lyuLpe\nIqPiWBlAaPimOQIHocmcei2/DdFPmfqtgRVRS6+4rwKKdiUAh7ZmgiWW0ZjO\nw5h78CHBfEa0PdvTNoOd1HZi9xpWPopmAqrnEuBU66svKwGXENf9nlelbZK9\nB0aD9QielhFgHcJovTaiZg6huai2VnOGe13goI/RqG4TYyP4zk3BbYSX67YA\n11uU1eEapIMOy8h58hIdHrhBY/zZAzsl3nOqGaxJld0Jg9HWcBjVD0/BRGq0\nmBWVd4+tYr64m4nWFWlM+6iWw/WJ9o4U3IpnodSSJBsgHel7K4gF/y1Gb0Wv\nJ433k1o2mrtUUk+1fSuPALuLFtwRLnqrdbeqRAAKypvBEfwpI04BAtksbihV\nZd4L\r\n=TF/5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCOyBWEBEGqfcnuO8mT6gQt2FXo45pkdmbs7ikPLQ9ZCgIgBUR7poKv2ofG70XJuUg8jPsNyyYv+AjwMn4COQdbfW0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0-canary.78abbd59.0_1631568417659_0.7597332407787067"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.23.0":{"name":"@material/mwc-list","version":"0.23.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.864798678.0","@material/dom":"=13.0.0-canary.864798678.0","@material/list":"=13.0.0-canary.864798678.0","@material/mwc-base":"^0.23.0","@material/mwc-checkbox":"^0.23.0","@material/mwc-radio":"^0.23.0","@material/mwc-ripple":"^0.23.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.864798678.0","@material/feature-targeting":"=13.0.0-canary.864798678.0","@material/mwc-icon":"^0.23.0","@material/mwc-menu":"^0.23.0","@material/ripple":"=13.0.0-canary.864798678.0","@material/rtl":"=13.0.0-canary.864798678.0","@material/theme":"=13.0.0-canary.864798678.0","@material/typography":"=13.0.0-canary.864798678.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"9830d665867dbb440855339d9181b5c323202008","_id":"@material/mwc-list@0.23.0","_nodeVersion":"15.10.0","_npmVersion":"lerna/3.22.1/node@v15.10.0+x64 (darwin)","dist":{"integrity":"sha512-D+Dj/3v9Ye3TCY4w3rsVgCjXkHXNZDAIIgk3eM6BJLNeyDIzUYD3efZG7S2i6qJiMLIX6zYfZ2YL/nfQXiWtww==","shasum":"06a9b2518b44de82086012a4cee2f02482a2d35d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.23.0.tgz","fileCount":54,"unpackedSize":263370,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhP8Q7CRA9TVsSAnZWagAAEuoP/2aDCvIJdaKpxlAkclXK\neAAeuUAj9ZDV8yAs8kS6wrB/rFd7/uczHeLkzMk/FytidK45WJ64UYNpdZpt\nzeBXbbCn9sAropG8DmzIRrb7FIBlrT7/Q0fwES07yqcOddN2pcPvt0OdfniB\nmJqyvx3pC8uN4Ud9n7M0w2Jv0wi8Ira2S3JXFpqhyxys7jHrai/527Ralr9i\nhgdCO0Oz//lbsQueXeO1KQPieZFo7TBqYsZ6BbW+KRIp2L6uI8patSMQULq1\n7h/ohO7ODTSU279te5h2DxX6QFjpAk0hEZG9+qCZTxkB/PN/7bKF2NdnwKCj\nSvivep3+38NlymunLtw+PMmuM0HyL+xw6/a+vIpFDjyL4TJZHyJDrBMV4fEY\nhUx0MM0P7LBrtI3/aaQb1dH5DVo1dGmUrn3+sk5NNqClsoAMOP7fsqh8AzF3\nACvQTHWLpYEwSvKQldBywk+3+IXYw/8sEn2wD8ZdALenB6IXx2q6CDzH9nro\nwr3Qo4rIHvEBm8pgbljoku+H0FTo8eHUynu2Ef6ZmBp5YbQ9EeYDiAfY3Ouj\nVPi8IVI0ykfXT8rBsbMk3Kj3W6ygvvSH6tExEz+red3dU9Btzzd8hqIYJnrH\nNmv9B6F1GfYQopaqbFGgQv3m8FfJxgF8yxG9w7i2+EmITOcrdz+T5bDKE/wY\nstH3\r\n=AopQ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICcMClVcjjQx0+aDBvFgyIliYJHRoiuV/2QqBZ7zKOGHAiEAzQRye4mqAV22MLrfWLsnEkg0lrARmIdYpDKLeKLRzUU="}]},"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.23.0_1631568955649_0.1705737982628941"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.9830d665.0":{"name":"@material/mwc-list","version":"0.24.0-canary.9830d665.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.864798678.0","@material/dom":"=13.0.0-canary.864798678.0","@material/list":"=13.0.0-canary.864798678.0","@material/mwc-base":"0.24.0-canary.9830d665.0","@material/mwc-checkbox":"0.24.0-canary.9830d665.0","@material/mwc-radio":"0.24.0-canary.9830d665.0","@material/mwc-ripple":"0.24.0-canary.9830d665.0","lit-element":"^2.5.1","lit-html":"^1.4.1","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.864798678.0","@material/feature-targeting":"=13.0.0-canary.864798678.0","@material/mwc-icon":"0.24.0-canary.9830d665.0","@material/mwc-menu":"0.24.0-canary.9830d665.0","@material/ripple":"=13.0.0-canary.864798678.0","@material/rtl":"=13.0.0-canary.864798678.0","@material/theme":"=13.0.0-canary.864798678.0","@material/typography":"=13.0.0-canary.864798678.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"964716e9985c1d08cbf280a6c7a4093be800c67d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/964716e9985c1d08cbf280a6c7a4093be800c67d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.9830d665.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-h8tDhBLe2zJlKc4nK/+fc1RWgN+YOdiBrp1gFsTFSQ+HK4/W9DBRtI9eRlfHHhJPxVP9wHKzp37b76H1RTNusw==","shasum":"f0124ed4c3d94cba4454987c9d37475eea81b38a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.9830d665.0.tgz","fileCount":45,"unpackedSize":232659,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhP8SmCRA9TVsSAnZWagAAhl8P/32Ot+vM1USl0cRzzEFy\nksgu+ZVs5CxpLWJGYQm5mVgQZoxxdyprwZFkmFEKDW1WRsSjbaug8y+yE2P1\n5lH47nBzKRYJ8vXaMw3BcBHsxsdrdeDnUtFwGnXJCbdp9zFpVSbOQh/clEVc\nMZjpDjx8Nwv0+jBHxMKpGXhnh63LKrkIVYqOGu2eIRJNEyZFhRdWHZwFkkQd\ncxEhs4FbKV3kjQRfXpa1Znrh5l0NK7MP9FrdzfmqhS/onmdm6yOeRzLYE0ps\nSbSPbwhsY+wgJNAQUPdiyJFzMyhPcuMvAJfJKEe5lUms+KGlsEQfG2CjGBBc\nrZ70x6h/JvmCBp7buXAq769pIKNFTkLSRT2hOtRtvuwSV6vgD+/wq/Y7rIcW\nKrAinmc0UOQ82RWUSADbdFAA//+xy9k2uIGU0QgcdK4f5/g5jH7WI0Onr95x\ndOQgMz1yE27AgNqkvFQW64bQTvLzvi50zFsGPHV+BHtFHV7JiKLh+56NZDHK\nWn2PBwRioU+XvfE+q5hA4Mr2t7wfjhPpscfjGxu0fJqKLrXyKn2asNDaf7UW\njC6D/4/GU4txUIN4wj8rpyTaeKDlHVwdLI7bOlNyTFtD04DiBjx8HHS+Hfr3\nU0uzFJJ1qgE6PxOxoo5yn1F8KFO4OleYve5UFWDNFLK83hbpEkcrQCMlQT+s\nozne\r\n=cnnb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDYCJsc+aD3WxzNqZ4ISrBBzzRH5I5BMoWBfFcFvAYV0wIgB0Vpl1tLv1RZ4rqX+j+foeUKna1xBHHl3Bn4oXhUpt8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.9830d665.0_1631569062474_0.3077944449812744"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.20e2081c.0":{"name":"@material/mwc-list","version":"0.24.0-canary.20e2081c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.864798678.0","@material/dom":"=13.0.0-canary.864798678.0","@material/list":"=13.0.0-canary.864798678.0","@material/mwc-base":"0.24.0-canary.20e2081c.0","@material/mwc-checkbox":"0.24.0-canary.20e2081c.0","@material/mwc-radio":"0.24.0-canary.20e2081c.0","@material/mwc-ripple":"0.24.0-canary.20e2081c.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.864798678.0","@material/feature-targeting":"=13.0.0-canary.864798678.0","@material/mwc-icon":"0.24.0-canary.20e2081c.0","@material/mwc-menu":"0.24.0-canary.20e2081c.0","@material/ripple":"=13.0.0-canary.864798678.0","@material/rtl":"=13.0.0-canary.864798678.0","@material/theme":"=13.0.0-canary.864798678.0","@material/typography":"=13.0.0-canary.864798678.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"4912005504dcbf47a4f5fee3ef7d4b37cfb48606","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/4912005504dcbf47a4f5fee3ef7d4b37cfb48606/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.20e2081c.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-xMlyVq5t/sw7CHMBnH+JsBQfEVxkpEQ1BOGcXAysEbZXH2cDYRzG0pgMpWxxrnuNItEE8FoaKenXsLPzPJUpnw==","shasum":"0c9c8760931ac5f17cc0d6183433d845ce9e4c5d","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.20e2081c.0.tgz","fileCount":45,"unpackedSize":232667,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhP9+fCRA9TVsSAnZWagAAE4AP/jL7aa4PpWqi/1aO9mD2\ndefs+KfoX9qX+blBUAoPVQgrrQokG/S3tO4FXj09RvsINuqUFb64GAeyrHYh\n4aJNC50e8zqcrA8EHgnexv4TCCGGH8xRSP3dz7B3eUBFQ+K1cnjGvqI+ukJI\nLElqY//S0sL5pwqNxbV5t2iTlqV9/YXKFNcvzZd6OqizdluNJvVaSFWvVdlG\nLpJ4euQGxEnA/RFeMcV5xdgZ8j2UkvFfKA4WRcIl93fKHIJZX+/EuHMDzo2/\nWisCbqiN+62cwtNivtQ52CD0QNCHPZ2hwjp3zsX9dpmz9cjv8/meabaUqFqD\nPapBgBrKfnrtussswm1c7QGS1V+dFfo0iuYRMYiO4JcT/KgVJjGBFqHcCCIg\n+8ldt1ELUypuhFa6WuzD3soh0WsD34HJbXZNNVQIq8hYMEZpoUCa1fax59m6\najylTS30Hac5o3jG5rsecifPMrbpXAeNxOYuiW9eCYbJFKOnM2dygujxUwuJ\nsExjXdVzIM0XjHMt1j1PQCukfBRoughTNlt8eVYN4GZAeVXUYQqVCVrJU5Kv\nfQu1L/9qTCL8K+Ds2zEv9hmlM6B/m4A9gPnva++csvwQ8bnhMY9dNoDjhMm7\nKoftApr/9a1fiBAgwEkdHQ9ZIWFrlUbaOa4XoYEaEa+CYUvBowEyaMV1vRKS\nmVNl\r\n=WJDI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCkGNjHLe1NhVrUx7z3pjCDCzp8Tv8ZoAVX01EjzlUpZAIgc+0btj1hxDkryQJOpqfUilbjOrijGF9wUG9V1RgxIFY="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.20e2081c.0_1631575967648_0.16437819161622258"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.583613a9.0":{"name":"@material/mwc-list","version":"0.24.0-canary.583613a9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.864798678.0","@material/dom":"=13.0.0-canary.864798678.0","@material/list":"=13.0.0-canary.864798678.0","@material/mwc-base":"0.24.0-canary.583613a9.0","@material/mwc-checkbox":"0.24.0-canary.583613a9.0","@material/mwc-radio":"0.24.0-canary.583613a9.0","@material/mwc-ripple":"0.24.0-canary.583613a9.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.864798678.0","@material/feature-targeting":"=13.0.0-canary.864798678.0","@material/mwc-icon":"0.24.0-canary.583613a9.0","@material/mwc-menu":"0.24.0-canary.583613a9.0","@material/ripple":"=13.0.0-canary.864798678.0","@material/rtl":"=13.0.0-canary.864798678.0","@material/theme":"=13.0.0-canary.864798678.0","@material/typography":"=13.0.0-canary.864798678.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"6362ae780108c56957ae78e7b17d5a13a17b286a","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6362ae780108c56957ae78e7b17d5a13a17b286a/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.583613a9.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-6X86hTHaBDnhc2c9nG/PO15Lphtc0Vota+hBn2NxbMigAedXj2nEdtVi/rtHC719rL5sBbZ2DUUjhYxRWVhYUw==","shasum":"ebefb5afbcc7dbf79b1d63d00a3594196218ca00","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.583613a9.0.tgz","fileCount":45,"unpackedSize":232697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQNQYCRA9TVsSAnZWagAAFdAP/A6P2NcF8ZgzJTtD0dIQ\n8tkV78frlJl0swBJ5G/zdj1cTUijGn/lhhV5WWOI+tIHibwb8u15l9FkhP2l\n+YecU6wbxsx6JX/uiP0agOOoikFTmRMdCQoSU/mshtpmBn67boNlWhhNT5Mg\nBQGx5FCikWidbdT8gFDp6Sems2mnn5wnByxL36u6J2XEUoseuAedHATgTPC1\nbAcfwNauSAG5KrAisTwgwP9mwK4M54o/DL0lAuSc0M5bI2bqsfQItQTNJMmi\noN69UdoR7ZOPEYcDUawZDA6x45VWvbj/5/zMfpBf1LqVgBA/c4E/bSxVShky\nGqXae6DF0dyXSrxRVjka+U8O7WyGA5IBDPXTlU4AW5C2YsAx+QlbSXP70GFV\nsfiQx+bFjcT6ILQuQDFczsiM78Qm2CmlhDdipfXzYdBp3lszen//eBQsH3Sz\ntu0tv4FN1psWzwpruEXUmDt8eYyu5ZH6yFgFZRv9DhbrdjRCD0zpWUfobYg/\n7Lxn1nNRJ1INUwahseFkrHjejhaEuMQmpSJna1ObrfutONB8zLs4AtuuielH\nkXJUWrjkSEJh3qnO76nn0cpgDVibcSMjEn1DppA8QOOV6p8M4GD2pbhTqM2k\nTou6Tq/qOmBImt/N6fqYqwbP7bCOm5v5Ze70k7LbiHFH9Ui1cJEJ5mh5RxWn\nHBFU\r\n=xVFl\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/JyDGtv2TwivUSOCFPKsLNk/Qi0eBslA6Ol3QT8QPrQIhAOWViUcONPGJuZtYz0IjC8MsigdakEQXu4sHemL+WY8I"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.583613a9.0_1631638552398_0.6802164728475895"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.0e1bd56f.0":{"name":"@material/mwc-list","version":"0.24.0-canary.0e1bd56f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.08398f880.0","@material/dom":"=13.0.0-canary.08398f880.0","@material/list":"=13.0.0-canary.08398f880.0","@material/mwc-base":"0.24.0-canary.0e1bd56f.0","@material/mwc-checkbox":"0.24.0-canary.0e1bd56f.0","@material/mwc-radio":"0.24.0-canary.0e1bd56f.0","@material/mwc-ripple":"0.24.0-canary.0e1bd56f.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.08398f880.0","@material/feature-targeting":"=13.0.0-canary.08398f880.0","@material/mwc-icon":"0.24.0-canary.0e1bd56f.0","@material/mwc-menu":"0.24.0-canary.0e1bd56f.0","@material/ripple":"=13.0.0-canary.08398f880.0","@material/rtl":"=13.0.0-canary.08398f880.0","@material/theme":"=13.0.0-canary.08398f880.0","@material/typography":"=13.0.0-canary.08398f880.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"0ac1a8621875726916642015e273dc177d29abc9","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0ac1a8621875726916642015e273dc177d29abc9/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.0e1bd56f.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-xaQg4hI23WJEJHV5h/iIW7WQ7mCXiMdU53G+A2xSk90yOQGA/tt/976TSEfwyXg9rRjA5dh6AhH+BPYDYUsNXg==","shasum":"7af6b1015d2940952582620f891483c16eb25126","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.0e1bd56f.0.tgz","fileCount":45,"unpackedSize":232697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQNzHCRA9TVsSAnZWagAA5EcP/A8rBVoXTcVuLI0+ayN6\nrbzKrg7EgTHyLjSbuYOCv+D6e9DoFWqVsPssBsEL4PVH34YWS5xFy5QVn0VZ\n6rVAoWyJzI7t6fx4Z1bLkX9DzlYrJzTfatvw3wZwdrCbfRvfaxRDaWdhyaA5\nvfrvgmp/VSzlyRJDl4/+OU1GQCkE/zh4h1JXXDscMwuSJ0TdCX0f6saSCk/Z\nL2bMLel+g1DE2dw3Qt2piE74uMr8K+6pTzLYR/+6Zw6jhXYQT/ALw+g/DmiI\noh+bKrCKg3rjA09b0VPRarjss/au6XCz7K0FZoyDckodZ4HML87zv6LYvBke\nnr9Fsiv3/acf0oNn9sgV8zLN2wGuHgNWji4sR4uiVC9ckva5aiQ4fhlf15Zz\nRdx1up77sgQvmxrfHp9rfFJ0o+bTTAYldMu1GYCXGEt1ktNS7ujiJZJLXqgo\nhrDLIczKT+J/YLyxDl/s8GMvVj0RlxCYJduh0ZnobhlPNAuCCjn5pgriBRFs\nEZGk/NMfSvjRg+sjf3QN6mDTCW9YAqb0tb4DuwxX4pKxaj5n/GuZmkMklB5b\nddC2p15N6edF55iL1mQBl/+kBfubS32FROy/6dEaSqG+UenMnz+/45aVN/8E\nnfYpfL6s+N6uipvGW2OnGbAlMLszHlFxrF5XCAiQwsGlwUuyGU5WUxfpGOZ3\njT1h\r\n=BnuR\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEBNRiF8kzIWt9xR9kCkJe5rAiFYQD23zWTJMb+waNNsAiEA/awkQbIKCJnBUQXPR9/GJzNWu55rcOOerQc2e7Ou83Y="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.0e1bd56f.0_1631640775550_0.04254426047892346"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.7bb1818e.0":{"name":"@material/mwc-list","version":"0.24.0-canary.7bb1818e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.08398f880.0","@material/dom":"=13.0.0-canary.08398f880.0","@material/list":"=13.0.0-canary.08398f880.0","@material/mwc-base":"0.24.0-canary.7bb1818e.0","@material/mwc-checkbox":"0.24.0-canary.7bb1818e.0","@material/mwc-radio":"0.24.0-canary.7bb1818e.0","@material/mwc-ripple":"0.24.0-canary.7bb1818e.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.08398f880.0","@material/feature-targeting":"=13.0.0-canary.08398f880.0","@material/mwc-icon":"0.24.0-canary.7bb1818e.0","@material/mwc-menu":"0.24.0-canary.7bb1818e.0","@material/ripple":"=13.0.0-canary.08398f880.0","@material/rtl":"=13.0.0-canary.08398f880.0","@material/theme":"=13.0.0-canary.08398f880.0","@material/typography":"=13.0.0-canary.08398f880.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b34bf652f1b82b80ec01a0ffcec5dbb2dc950485","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b34bf652f1b82b80ec01a0ffcec5dbb2dc950485/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.7bb1818e.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-CKo3oPK07wFHpkVIcRbulFpgGhQxkJrjyDu//IVfg5w/d43tZxxbjThkO8i77PQY1DmPhmQLRqyLIrFuztHVBQ==","shasum":"ff191905755538c65ee068fc79fef1c0b613b16e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.7bb1818e.0.tgz","fileCount":45,"unpackedSize":232697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQUAOCRA9TVsSAnZWagAAf2gQAI9at6uIj7I+/nx0+471\nWt1f7HujyK6Kbtq9JJtXEERY/Rpdqf/0wywWqqn+r/7imcLfSKCUTM8CLDeY\nOGJ0UaeX5951CepJUas7DREEobvuSGrWXA2QTgNvvFbwE/vLlbRChb/JrINP\n2T+fIILd5CmRbTztk1n8YdYN9hnbcK5G1tktKIKLtm5cfFf3k/1pkfJ6B7nf\nToXNGye60Cz7rJM8rYWE58k3AJBG2Z7MDWWe/oPRuhEzGqSykk5O0d2oTROE\nuqitwWpD1dDfRT+2JelQ/SmVPGCLeRbAhpD5lkOX3ttREfe9f4LYkHIkbx1j\nfB6VX0MqSCe8+L8oegnCkpN4YvlQe4tUT4bONzHTo4xpps//5oQLf/4v4Xs/\nZeQt6Rj1YB+VFLOfYLCglRlABpUJ4fvH+yTYhw6akBkabE1eznhURj108L2L\n6lD2Zw7TZUwq/PQMDgB+MzsKAhsbSqsr6bFsCr3rfZ7KcrBoZuPLh1VGhwzi\n7dAiaudUoOVWQcty68VZ2HVsIbJysvbEMdCsENochENuxez+sPrP8lM9v7EV\nlO4avmFQOIiwR1MnLxOU2PCSHPWq/e9rDoeSyXEI+vZI5wGipFBIeu5KDWg+\n51EtI7arNjKHBdQFrGtl7xrIRzMyQTlX5ikRJo/tGTew2ePXTw0Ghq2+x51O\nHuW+\r\n=pFwH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmIvn/NMcKuX7/n7adeC1S+8sSOwWM4h+5m/Jy9PXJ5wIhAIaLWIyBsKL6gi8VcUQbsRgc+JvEUhQISZrjQjRFf12G"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.7bb1818e.0_1631666190120_0.6656834890646264"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.b5e665a9.0":{"name":"@material/mwc-list","version":"0.24.0-canary.b5e665a9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.818f4ee93.0","@material/dom":"=13.0.0-canary.818f4ee93.0","@material/list":"=13.0.0-canary.818f4ee93.0","@material/mwc-base":"0.24.0-canary.b5e665a9.0","@material/mwc-checkbox":"0.24.0-canary.b5e665a9.0","@material/mwc-radio":"0.24.0-canary.b5e665a9.0","@material/mwc-ripple":"0.24.0-canary.b5e665a9.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.818f4ee93.0","@material/feature-targeting":"=13.0.0-canary.818f4ee93.0","@material/mwc-icon":"0.24.0-canary.b5e665a9.0","@material/mwc-menu":"0.24.0-canary.b5e665a9.0","@material/ripple":"=13.0.0-canary.818f4ee93.0","@material/rtl":"=13.0.0-canary.818f4ee93.0","@material/theme":"=13.0.0-canary.818f4ee93.0","@material/typography":"=13.0.0-canary.818f4ee93.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"1098b7010fbefe404afd06dfc30b7b30db59b092","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/1098b7010fbefe404afd06dfc30b7b30db59b092/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.b5e665a9.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-tJmQshadR4InHVPrVmkfzTalPer8u+hzJRt5dfTWkWPeAAmn0LaTZCYM6RzdUx3n4/VF8DU+I61UQVHp10LZ5Q==","shasum":"bdd1c707d5ab34981891be024dbf1ddfe38b057f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.b5e665a9.0.tgz","fileCount":45,"unpackedSize":232697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQjfcCRA9TVsSAnZWagAApAUP/iMEU4Tnakz/aGCIzP7x\nRrtDnRQ37wFwVbRbVZRQS80L/qE5HbBmpgD1iJ7qPwAiyksx1Pxg2Zp5QUtJ\nRISSqIM+eQKivKa8AsidhmSzu+2+Ty1KsBI/P9s98cWu0TrkjZBTKyG8jXws\nlKsY7LBzaKY0ms892QVt379WzvYxeDQheC9cynCubr5ZLue1HqmKnH9uxTKi\nSJ12S0S8M4UeUhlCAFXQUSe2emEwfNEFM9XtfJ7I3+ka/C4gWOOkf9gPleyX\no8UxPEkJMMQdYTZv0uTylGcWL2i0mJW/nPyCTBe7hdt5n2T2CRb11NXOXViD\nHnPwf0wcVGL1RziO3XMnysEhu5vKPFqWeZrlk90NfrPHVegjQbJqBdswhjj6\nzhyc1lL4CovUlSvX0y8x+WpDgj5ZzF6YVcmWlQWag0lWSeofdhhaN4ulU9LQ\nF+AKJswWlnrWH95G+cvl9j0ZqPrO7dFICyiy2kR94SEwUW1G3qIfrW5FrZxb\nsfNSMXXwlmL+ViAMlRsmNA7+d/Mh5lQHQljMYlqf9dsmodtFsMcVWmOwLOi/\nwTEO4Q3BsX78jZLWBPhE/iHH3jsRWzXL6CBRmxuJy7s5G44Y5CF9g1qmO69D\n5dvWWwpLNTFJ/21yCni4bwk57AE2oliFwqMa+CG4VZ/GXQPTOnV0N+i2PPtc\n+HoW\r\n=EXhu\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+n4zeraPQCjDDnS1Zum/rNpmTkn83tQJDtcYghhZfOwIgWpz0aJylf4WeiKBtDbFExBELO9JzZpwU5v47L4civMQ="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.b5e665a9.0_1631729628492_0.9638927390329144"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.ab1e177c.0":{"name":"@material/mwc-list","version":"0.24.0-canary.ab1e177c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.818f4ee93.0","@material/dom":"=13.0.0-canary.818f4ee93.0","@material/list":"=13.0.0-canary.818f4ee93.0","@material/mwc-base":"0.24.0-canary.ab1e177c.0","@material/mwc-checkbox":"0.24.0-canary.ab1e177c.0","@material/mwc-radio":"0.24.0-canary.ab1e177c.0","@material/mwc-ripple":"0.24.0-canary.ab1e177c.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.818f4ee93.0","@material/feature-targeting":"=13.0.0-canary.818f4ee93.0","@material/mwc-icon":"0.24.0-canary.ab1e177c.0","@material/mwc-menu":"0.24.0-canary.ab1e177c.0","@material/ripple":"=13.0.0-canary.818f4ee93.0","@material/rtl":"=13.0.0-canary.818f4ee93.0","@material/theme":"=13.0.0-canary.818f4ee93.0","@material/typography":"=13.0.0-canary.818f4ee93.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"afc26bf1f2c64cbe713e03a55993e7844eac59b4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/afc26bf1f2c64cbe713e03a55993e7844eac59b4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.ab1e177c.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-yYVcFvUidhGCMUKfCZdBCKa7wrhV7KXdu2Ik62rxyhIliRjjfSwyJshAwRj7Bl6n7F8/w9fb4e9IFormV0h1sw==","shasum":"e2f237d147707379d869d1800855861c84ba0866","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.ab1e177c.0.tgz","fileCount":45,"unpackedSize":232697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQj9KCRA9TVsSAnZWagAAFhAP/3dRYpDnuQQk/cTnxheA\nGprI2XxtcQigl8imNawa9gzSR891B+hjVqT1BAPqbeoK0GYJeKH52qjk5py7\nuvbvo5Nl/PHAxPaOJR/kXZMIHQVKn5XbI3p+aNkFS8hxb3IRc3w8lyjvjEP3\neVTqKGg87RAEfjq8xn8nUlNb/qgP5OkgRgiCuYi27SN7fOAFHblHhwfDfq3u\npKUR9kKNo/ayIwCmNFwCI7S/UDGqCao2Y5YqGWC1d9ipC1MxuYibMRmUf4rZ\nkhgQ8nSHQBJxb+9KDtyqgKcgesKXpeByQ/ZriDVBUMpTD6t/qhlPS4swBBZR\nLc6vIQ7U+1gYqNCFLtQ8JM7aRAKlFosYswcVF4akVN2GmppsGB26+cG+NaD+\npZ+NDQMgBdEvvHIX5oyo17c4LE8Wn18fyHPx80/lkqPardpprTEdsD4l9aTg\nE8KPo9ZmuOroIWeTJyWkJckof0mtp0VmjctY4fGqb0Rk95DedHcwYAvOL7LS\noEnAGG5IZPxot01VrIw+dA9JASYCcryvA8k02QYxjHrUMdbwPgcM7EvSMNl2\ndnthlLVzZrc6iAMKG463U3eRRr6joY31USjhlCREYxK9DCworAg+oxgsGERc\nNfxBpHmupX/pvBP6SJG5vnfjY6lZHn/jn2ODqB7a/8lE9/is07fV3253jp0s\nFPaG\r\n=u/ja\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHCwCKL57ksPTfXRXzMZBr9O62zHc6imRT80zyyPMEXTAiBWxOmLlXjmV/+F1fV5UpWPuLZOXHvicyEIEjO9w72gug=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.ab1e177c.0_1631731530623_0.3219213907132845"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.8dff8894.0":{"name":"@material/mwc-list","version":"0.24.0-canary.8dff8894.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.818f4ee93.0","@material/dom":"=13.0.0-canary.818f4ee93.0","@material/list":"=13.0.0-canary.818f4ee93.0","@material/mwc-base":"0.24.0-canary.8dff8894.0","@material/mwc-checkbox":"0.24.0-canary.8dff8894.0","@material/mwc-radio":"0.24.0-canary.8dff8894.0","@material/mwc-ripple":"0.24.0-canary.8dff8894.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.818f4ee93.0","@material/feature-targeting":"=13.0.0-canary.818f4ee93.0","@material/mwc-icon":"0.24.0-canary.8dff8894.0","@material/mwc-menu":"0.24.0-canary.8dff8894.0","@material/ripple":"=13.0.0-canary.818f4ee93.0","@material/rtl":"=13.0.0-canary.818f4ee93.0","@material/theme":"=13.0.0-canary.818f4ee93.0","@material/typography":"=13.0.0-canary.818f4ee93.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"bb2f0724a85956f5a92c61a18390b4616e0ce836","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/bb2f0724a85956f5a92c61a18390b4616e0ce836/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.8dff8894.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-ewF/PszPTgOASpxjShEmfPztsp8JX+E6Z+C6NvwYW1nuo0rUYDth9zfNgVAJCpR060U/RCKFvYK0j7KZskFM7g==","shasum":"3a9860cfcd778da13ab8b4af0c89fcf72641fefc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.8dff8894.0.tgz","fileCount":45,"unpackedSize":232697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQkTXCRA9TVsSAnZWagAAArwP/2NID9WCCvqjN8ex3Aq2\nEPSSNcvk3E51G12NLYkMjc5LKoFF6jbvtoVwY1CwYNSyavJ4HoPb7q18cZMj\nPx58cFxDY5vz7TzpjDqPQkMDjjAU6TncXslJYTlFMehwGmD2KiTXm+C1Uak9\nyn2GA7AJQPmtb/YcxMEqDiH23lSS4unFOm/T9n6zs6nV9JNLlqRHXrVie4Un\nDWnbfKHl5l/2fJseubCvJXwXvuMU2ZlCZCC8/KEcRALG+NoPkc7TkAqwXsks\nuYtBTRZ0LvHTX/qffxTtRWPGE931D7+2jyAwgX8ZCsIAMSam2sVKr6gl5CyT\nop8xKwcdhU7oTpAzLYKtlawIKgIqDpSstduIm72cR5VXNPsVdUIOpT1fgdBi\nYWvHMKY7CQ8NlCyOiImx1ieM+KEsYmY2KDLIrE1yMy0JrbvB2lhGstWz8ial\nYH5UzsJQpZ23iy49Z9hmwdgGiBIrSn20dILpbnrueqtsJtwy6vX2QryZ0Lti\nt3+nUq77Su8gYJGhnmCSF31OorEVY/dVeJlT3RGo4/82WKMvIuqAv5jGIWe+\n0izvY4+w9eUE8cCrbfgGwZW5jNnLCdyZKkedNYuXTNuFOD6qsJyTdoNvW02q\nZn2a2FBRfuXKSnqFPeXhzS0URNK9DofbaIguMjLUsmuEBKYvAZFLpdI5bzta\njwe3\r\n=GMqB\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLPjoGNHRwCtUYLz/DXhCwZezmJHaVjZsuYFdDkkkL0gIhAIWHbrt3icYjao20M3cQM8hLUUiqanXMnoULoF5bVVIK"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.8dff8894.0_1631732951224_0.7474392098408071"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.9cd7e927.0":{"name":"@material/mwc-list","version":"0.24.0-canary.9cd7e927.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.818f4ee93.0","@material/dom":"=13.0.0-canary.818f4ee93.0","@material/list":"=13.0.0-canary.818f4ee93.0","@material/mwc-base":"0.24.0-canary.9cd7e927.0","@material/mwc-checkbox":"0.24.0-canary.9cd7e927.0","@material/mwc-radio":"0.24.0-canary.9cd7e927.0","@material/mwc-ripple":"0.24.0-canary.9cd7e927.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.818f4ee93.0","@material/feature-targeting":"=13.0.0-canary.818f4ee93.0","@material/mwc-icon":"0.24.0-canary.9cd7e927.0","@material/mwc-menu":"0.24.0-canary.9cd7e927.0","@material/ripple":"=13.0.0-canary.818f4ee93.0","@material/rtl":"=13.0.0-canary.818f4ee93.0","@material/theme":"=13.0.0-canary.818f4ee93.0","@material/typography":"=13.0.0-canary.818f4ee93.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"cdc8741747c55134790f2334cd48c000ef607804","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cdc8741747c55134790f2334cd48c000ef607804/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.9cd7e927.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-q+PbG60ICipqkOLl9bsgovrx5a+vGO802TZrPORoGDNWpAqiLoNYJoj0hFKHC5pdwa9Kk3F9ZhWohy9p5Lwe1w==","shasum":"bcb34916b29bcdd667622d6df8be8473d3c56cac","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.9cd7e927.0.tgz","fileCount":45,"unpackedSize":232697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQlhyCRA9TVsSAnZWagAA3RMP/3G7/KvsThHo8vDLbIwy\nA0Ykiu0DBiH8Ge/yDjbDMi1czds7nFDhOYEnlenuFrg4fYogrXh6Wx8IZ5qX\noaHNHam4MMiIGK6Er1wUrs8hYjIyzVEPFcY8M8cbq7Sg1heEPiepbFNuYkWM\nFmKVOX9Kmk76NSrtbHRtDbH17MMAXwsm2f0tPhtNWzzpcGzIc3uXcRNj3HQb\n9IvN5yfy9dkB5F9FZAfIXu3DscTiPC41QE2PnjXXE/QU3FpEt1H26uRTBsUR\nORaMOh/OBv62Y/PkqOdwWD3Szcc6pXk1zhlD/+mkDDaSfXx5kC3YXqkxjp43\nsMH9aCAdYIUdS0j7DzzKdiSU9DlTqr9qAmV3497Voz2GdkOP9UgLn1W/zL0P\nXUwc25/JvMPxDnqHsQnoojDQMlQSc18u8xftHRSs51KLB4M4YUN1Aq4PLQVZ\nqBoSReW0KVYliEqpKR6qEBk73f8UHOh/vlIBHeOuqkxn9U3Z5Y43Y6zcFd1C\nFTd78w1DZmi+Yd3WFJoudds02xhQ5spo6ywkK6FFZFMXdDwyeLLw2P9Kc9pH\nkyYFEDBzDGPbOXFtZ9OrflfJjJWePWiX9cWZHSjxJ0XadMznzzGcCzrfkKS4\n918ymDCeuoYpMCPby9qH6a2Gq4zonDN0MT4jTom+4gk6ot3XFIgtWdWlTwdL\nYLL/\r\n=Cfj0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCCC7ug9nDcRCeyB+jQhimsEdik1bdUDa5NxQCktayz+AIgExH6N5D6rSthvDGM1j8AJax0R+w99Q+Z8AtxV8CePjY="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.9cd7e927.0_1631737970803_0.43390831930902074"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.a7132082.0":{"name":"@material/mwc-list","version":"0.24.0-canary.a7132082.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.818f4ee93.0","@material/dom":"=13.0.0-canary.818f4ee93.0","@material/list":"=13.0.0-canary.818f4ee93.0","@material/mwc-base":"0.24.0-canary.a7132082.0","@material/mwc-checkbox":"0.24.0-canary.a7132082.0","@material/mwc-radio":"0.24.0-canary.a7132082.0","@material/mwc-ripple":"0.24.0-canary.a7132082.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.818f4ee93.0","@material/feature-targeting":"=13.0.0-canary.818f4ee93.0","@material/mwc-icon":"0.24.0-canary.a7132082.0","@material/mwc-menu":"0.24.0-canary.a7132082.0","@material/ripple":"=13.0.0-canary.818f4ee93.0","@material/rtl":"=13.0.0-canary.818f4ee93.0","@material/theme":"=13.0.0-canary.818f4ee93.0","@material/typography":"=13.0.0-canary.818f4ee93.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"efa498c7c84be94afa4d7c50d5bc525723212e88","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/efa498c7c84be94afa4d7c50d5bc525723212e88/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.a7132082.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-oR52vf+or0lOr4XyIKgdd1KcrQT7ZXuoRl8wpe2UBeNiY7VQedqEYil/1U0kP1XMZxp1Hq9fsCEipnRU+0i6UA==","shasum":"b805ce9a1f1c667301071482bc78d4b3073deb65","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.a7132082.0.tgz","fileCount":45,"unpackedSize":232697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQmmpCRA9TVsSAnZWagAAhUIP/R8vMKESn9s5lbAKNUkU\nAGQMhSnmGo3gN2l0J4VexI9uvyr/7M1HQmNICMyQFRw1xA25XdRoaxzdMBP/\nRScr+0efeqg84DppoTsuuIwNfNV0/vX8P1UjHFoeRqUFgbQH7XePEfQ5vb+i\nWXjhbmOeURgxkxHZc61Sqx0weEU3CrLMPRuUQC5bZDzGKY0ra4j/TJJ3QAtt\nqXFEOqq2bqGTb/HAXuPcA4p90W8HOVpz4HSD5r67c75vTyXV7Hv2QcfUtz1i\nHCSXhegTWDj+0lW1DpIC0xyQ33Srx9tmuIkP8BaeMedsAQF5WdUJ9MRpMVbm\n7nX5gc/DJWEClVdKAUm8YyAEH0LDmlo6tlBI09wcJ76nD/9wzaME0XEUtVf9\nWXanL4MtAzNcJIcV6q92uYdS4MNVxZvtaEeOpOkjR+2z2Y4xBHLvZHlqMCY1\nL6tpCmDF21orsv71aFatfGYXs5Gf66J+plresyn++r7s2pfU6+FHtcpRKP0i\nEBVbeX7caTcVMu9r/pz6vs4pk7vNaZyznTiRm+M7NxCdfDJdjOsvO6g7X7E4\nc488VlVln9raYajduJAP7nwMirc0RNbH9H+vO64oBJj5j3bmBsEvDL05uYkA\nyktK7fzWObq1q2Br055mna5ollad+XTJyCWsuDb9v76ZsoXRPqbROYHeQf22\nnt1v\r\n=cI3L\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG8RlsdIab2GUWcKGKGLEUkgkFE6s32Qqg+j31/aiLdpAiEAo1eysUkFUupM6o10vgKBhurMtXFkrWJuPwY2gedakFk="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.a7132082.0_1631742377636_0.9806589727793071"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.cd9110cd.0":{"name":"@material/mwc-list","version":"0.24.0-canary.cd9110cd.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.d4e16a6c4.0","@material/dom":"=13.0.0-canary.d4e16a6c4.0","@material/list":"=13.0.0-canary.d4e16a6c4.0","@material/mwc-base":"0.24.0-canary.cd9110cd.0","@material/mwc-checkbox":"0.24.0-canary.cd9110cd.0","@material/mwc-radio":"0.24.0-canary.cd9110cd.0","@material/mwc-ripple":"0.24.0-canary.cd9110cd.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.d4e16a6c4.0","@material/feature-targeting":"=13.0.0-canary.d4e16a6c4.0","@material/mwc-icon":"0.24.0-canary.cd9110cd.0","@material/mwc-menu":"0.24.0-canary.cd9110cd.0","@material/ripple":"=13.0.0-canary.d4e16a6c4.0","@material/rtl":"=13.0.0-canary.d4e16a6c4.0","@material/theme":"=13.0.0-canary.d4e16a6c4.0","@material/typography":"=13.0.0-canary.d4e16a6c4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"fe7dab0d93d6598d6a6c08de182cb7e3245f26b4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/fe7dab0d93d6598d6a6c08de182cb7e3245f26b4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.cd9110cd.0","_nodeVersion":"10.24.1","_npmVersion":"lerna/3.22.1/node@v10.24.1+x64 (linux)","dist":{"integrity":"sha512-49veaCaSEoh30RoZUNeXbpseZ43X8gEz/C7hARaD9Ht7GbswLinQVtUIOMjGDutBQ5r+osHMwbcGYFLfBanNvA==","shasum":"b4e4b3cca3733d48c773db8344bffbc53bbaacfe","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.cd9110cd.0.tgz","fileCount":45,"unpackedSize":232697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhQ4LkCRA9TVsSAnZWagAAF0YP/1sqzqx8cqf15mgoY59A\ndrq9nBR2TQhrtVUuMiUsPmefGSouL7NqmTnWe+xLQEkCFre4mBjMVr9voHQQ\n2O2AARCKul6Rlq9UPh66JaTZM84JzPk1NfS9wzWiZe9L6bOtZfgJ+Rw+/2pV\nwQvBu92niqalv2QaIOtZICiJdCjLB0+p9FQeEt0f3xqFeQzO1Alb6Tx+AK7w\nfB3MbcYVXdfQKYN+i92/O9GsA1UPyDimE7h0fCsFHb0WpSyDw4EhmyrRiQi6\nSCoZFRESGO44uYdZ9gi+XR7wM2GgAtbF5KL8qKMX+sISNJpe6PxfwTKDUZuH\n02DPoVT561AcGx3j3L8a6Dk6epByUOHsuDgSBxXvpkWjYvfl2RG+5MhsJrsz\nQHt+EgS5+zkyqA0G+Hv0rrD6TcBhUi2PjqPJq34mqmSfpFNo3UnwBVVoPSrp\nNeBglCrnYE/dnzyr03Ezs1OW2zkyN/0BIx4K+5i3oUD5mAfAU14U7i6qdbCp\nHyHgwtMB2mDJ0u/UcTtyOvxoCjHuKgTRB+r9ULqVhQSKPQHGMRiH5t19wNZY\nlTggQNAUzyVkE+3UJLq7lzNa8VGoBrz97zVMiBth3xvPFvxzbAuvXxXbDqxE\nM5P4uIlw7a6lzbu18SmQwmZHhsaDJYIfaIowBZN/GtgSv3ndXH8eILHIM/7c\n9RkA\r\n=kFF2\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFx57fdsXnqFvbAwQtcbk3Xb/QECj0nDmQfD5UN9k16uAiEAlwh9j2Q8+Ehdt8DWj6D/lHoEa+279m6tSvsZYkvzjq0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.cd9110cd.0_1631814371902_0.9994250197554861"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.1e5a9883.0":{"name":"@material/mwc-list","version":"0.24.0-canary.1e5a9883.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.d4e16a6c4.0","@material/dom":"=13.0.0-canary.d4e16a6c4.0","@material/list":"=13.0.0-canary.d4e16a6c4.0","@material/mwc-base":"0.24.0-canary.1e5a9883.0","@material/mwc-checkbox":"0.24.0-canary.1e5a9883.0","@material/mwc-radio":"0.24.0-canary.1e5a9883.0","@material/mwc-ripple":"0.24.0-canary.1e5a9883.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.d4e16a6c4.0","@material/feature-targeting":"=13.0.0-canary.d4e16a6c4.0","@material/mwc-icon":"0.24.0-canary.1e5a9883.0","@material/mwc-menu":"0.24.0-canary.1e5a9883.0","@material/ripple":"=13.0.0-canary.d4e16a6c4.0","@material/rtl":"=13.0.0-canary.d4e16a6c4.0","@material/theme":"=13.0.0-canary.d4e16a6c4.0","@material/typography":"=13.0.0-canary.d4e16a6c4.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"5b1cd8120da2d6449203e71bb01079f709aa19bd","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5b1cd8120da2d6449203e71bb01079f709aa19bd/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.1e5a9883.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-Pcwm6ROwPsTbNsAq9OQT3dJork+e6jJQMSygUytMEDOIas6ZtqRpAiA0iAxq9vYzCKdydStUGs0SSmcgcl+0OQ==","shasum":"bb0bee4bb17d297d5f5bed09e82f8351cf7918ad","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.1e5a9883.0.tgz","fileCount":45,"unpackedSize":232697,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCiO+m+zwm/d5O9xKV8L1EhTLbSxhfznRGpvkrixZuniQIgaJFKcEeFVQ/qrc9VsA/n97/sctI8Es65x09YGuoBiy8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.1e5a9883.0_1631911169867_0.08421766216192261"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.32c830ee.0":{"name":"@material/mwc-list","version":"0.24.0-canary.32c830ee.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"0.24.0-canary.32c830ee.0","@material/mwc-checkbox":"0.24.0-canary.32c830ee.0","@material/mwc-radio":"0.24.0-canary.32c830ee.0","@material/mwc-ripple":"0.24.0-canary.32c830ee.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"0.24.0-canary.32c830ee.0","@material/mwc-menu":"0.24.0-canary.32c830ee.0","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"72f380d7ef6cb00e8a03c42048cbf0cc09820ae9","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/72f380d7ef6cb00e8a03c42048cbf0cc09820ae9/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.32c830ee.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-g2DQXkiZlB+SRQveOVghkApFjhvVPTwaLFS+T9q3JuGxzwzj7xJwn7Lqk5fN68OS0ey0yxI2szIw5QsxPJOfgw==","shasum":"b92cf3d3dc32a796682108f2b4f88701f29ba721","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.32c830ee.0.tgz","fileCount":45,"unpackedSize":232697,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBBNqP5El2g1ee7cu/2Yo7XARs0Ot4B2kVRZ99R/kXmsAiB552iRfSx3MtCkkYz//ezTig5/FzMHzb/ta7Dq2lJcNw=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.32c830ee.0_1631920149176_0.04463122904462624"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.1de87bb7.0":{"name":"@material/mwc-list","version":"0.24.0-canary.1de87bb7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"0.24.0-canary.1de87bb7.0","@material/mwc-checkbox":"0.24.0-canary.1de87bb7.0","@material/mwc-radio":"0.24.0-canary.1de87bb7.0","@material/mwc-ripple":"0.24.0-canary.1de87bb7.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"0.24.0-canary.1de87bb7.0","@material/mwc-menu":"0.24.0-canary.1de87bb7.0","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"a3215ff82b8bd0ba323b98cc29ed77fca57b8643","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a3215ff82b8bd0ba323b98cc29ed77fca57b8643/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.1de87bb7.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-c11eHRljYL+rhISt5AcOckDMSXuRuZj56crAaJUf1Ao+bsRElfeduJEmQVGJQ6wHDVY/V3xyiL06t064yT+C7Q==","shasum":"e45cee19e8b9e14df5874dbb3cf45c4f77f2b867","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.1de87bb7.0.tgz","fileCount":45,"unpackedSize":232697,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICdeTgLK6ZNY9RY5oIqPXXjixxxmhi6lihp55bKYj+cFAiBb8p2GtsYahEoj0nstk+XwzjfDWtWAjB8ILXdz1wLH8g=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.1de87bb7.0_1631991151200_0.8524169784240068"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.f2ea80c4.0":{"name":"@material/mwc-list","version":"0.24.0-canary.f2ea80c4.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"0.24.0-canary.f2ea80c4.0","@material/mwc-checkbox":"0.24.0-canary.f2ea80c4.0","@material/mwc-radio":"0.24.0-canary.f2ea80c4.0","@material/mwc-ripple":"0.24.0-canary.f2ea80c4.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"0.24.0-canary.f2ea80c4.0","@material/mwc-menu":"0.24.0-canary.f2ea80c4.0","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"be75dd39a03705b3cc24c5614f2c7f2be7c3c93e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/be75dd39a03705b3cc24c5614f2c7f2be7c3c93e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.f2ea80c4.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-6hQTmPMQU0wruHcl8F+xmbw6ukvlHeszlqvN0iZ2rstC8OUFCtgI0iR2vtQAGJZA85UtyEyAXEjYuH84Ew7S2A==","shasum":"7f1d02488d353eba95ef88f3e973d5060cd5a6ac","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.f2ea80c4.0.tgz","fileCount":45,"unpackedSize":232697,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCbV4FoCczOxUK+u6O8I10i0YDQhSidxaLHzzwhhNsVtgIhAL8dEzxiy/vfrdI117aK6dM7Au+8ib//3ZndjAWz4zqi"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.f2ea80c4.0_1632160516831_0.21456464349953897"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.569d739f.0":{"name":"@material/mwc-list","version":"0.24.0-canary.569d739f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"0.24.0-canary.569d739f.0","@material/mwc-checkbox":"0.24.0-canary.569d739f.0","@material/mwc-radio":"0.24.0-canary.569d739f.0","@material/mwc-ripple":"0.24.0-canary.569d739f.0","lit-element":"3.0.0-rc.4","lit-html":"2.0.0-rc.5","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"0.24.0-canary.569d739f.0","@material/mwc-menu":"0.24.0-canary.569d739f.0","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"c2e841aead340c043b080dc4718873a82f109450","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c2e841aead340c043b080dc4718873a82f109450/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.569d739f.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-WipAPws0IdVKKiKXIdxlgRgSlYTV1CAxT0k5aXJJjETUa1CyXnqudqcaEFpiAFUl4dR5j6X9XyeMYHghIqOFhg==","shasum":"69b88bcbd3c0a04b7a3f991b0c628bc6754ed5d7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.569d739f.0.tgz","fileCount":45,"unpackedSize":232697,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC7nX+w73xgIfFmH80nnHGfFU8AADS/RslAZVFzJh63rAiEAu86N+iZ1IySW2BWCGcYuSFIfBqEDhGO8t+Drx8N1t2g="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.569d739f.0_1632173056472_0.16684805221462629"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.24.0-canary.5a434a50.0":{"name":"@material/mwc-list","version":"0.24.0-canary.5a434a50.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"0.24.0-canary.5a434a50.0","@material/mwc-checkbox":"0.24.0-canary.5a434a50.0","@material/mwc-radio":"0.24.0-canary.5a434a50.0","@material/mwc-ripple":"0.24.0-canary.5a434a50.0","lit-element":"^3.0.0","lit-html":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"0.24.0-canary.5a434a50.0","@material/mwc-menu":"0.24.0-canary.5a434a50.0","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"7f2821932d60f65ba8b79446374be9a66f009858","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7f2821932d60f65ba8b79446374be9a66f009858/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.24.0-canary.5a434a50.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-lkJwovpP92jnpJrut56fpg1zLeutC388sIQ81TwuanIinZMYkxJdXF0P6PnfPs0CZeQTKfzKFNBoZ4yxG03VGw==","shasum":"b806738fe1fdf88d970a9e1637df67540ce7b540","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.24.0-canary.5a434a50.0.tgz","fileCount":45,"unpackedSize":232689,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDE/owKFg0/56YZoMTCdyp0AHTHoyYl/diaIMwR1qGK/AIhAJCOyFN8zspRVhXsiTVFxShgeqoXnD9o1XxwKPuv7ME9"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.24.0-canary.5a434a50.0_1632189673278_0.17483576813485024"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.b1c1ab52.0":{"name":"@material/mwc-list","version":"0.26.0-canary.b1c1ab52.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"0.26.0-canary.b1c1ab52.0","@material/mwc-checkbox":"0.26.0-canary.b1c1ab52.0","@material/mwc-radio":"0.26.0-canary.b1c1ab52.0","@material/mwc-ripple":"0.26.0-canary.b1c1ab52.0","lit-element":"^3.0.0","lit-html":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"0.26.0-canary.b1c1ab52.0","@material/mwc-menu":"0.26.0-canary.b1c1ab52.0","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"320a093b73bd45cc5fa68abda305913c26c72310","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/320a093b73bd45cc5fa68abda305913c26c72310/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.b1c1ab52.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-JW72t91auAXtGqtwyi6/8tBRgDGow2EdA8lp85eTZLvjp+NnyBolhpKRTz5XVRUof0e/V4QWcyOz2uD1vBuepg==","shasum":"413e8a1a79bd639c0d36bc6e9356e618c60cd80b","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.b1c1ab52.0.tgz","fileCount":45,"unpackedSize":232689,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE+7fPZ+PdTiQApi4tgZ3SAKUvwEizqZXDx6uwPLa64iAiEAmbRSMPiPHZnkooDobW3WyWkoS3LoI8TITPpqWWocxzo="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.b1c1ab52.0_1632193953731_0.5330192169754311"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.25.1":{"name":"@material/mwc-list","version":"0.25.1","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"^0.25.1","@material/mwc-checkbox":"^0.25.1","@material/mwc-radio":"^0.25.1","@material/mwc-ripple":"^0.25.1","lit-element":"^3.0.0","lit-html":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"^0.25.1","@material/mwc-menu":"^0.25.1","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b1c1ab5230f56f6bce405387b9c75cc7111cacc2","_id":"@material/mwc-list@0.25.1","_nodeVersion":"16.9.1","_npmVersion":"lerna/3.22.1/node@v16.9.1+x64 (darwin)","dist":{"integrity":"sha512-jEG5c4EMEUdxlyAAWRp7zJLYoyfnDOupfZaHW59R7PNSh7rG0JJ4FwGYjaYVNlgcl8QY5CBr2JPQMBlprwvHBQ==","shasum":"cb4e308a46864bb72c14154643804d6de1d38948","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.25.1.tgz","fileCount":54,"unpackedSize":263400,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDxlXaahQqIgPc/vcoMfQ62UpnGqivIWGKOA0vakeUa/wIgQlOLkQ1HY+RyfohRDSlM9Fvkw5HjoYhFiEaG1cpuloI="}]},"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.25.1_1632193968079_0.09107282982888543"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.ae060177.0":{"name":"@material/mwc-list","version":"0.26.0-canary.ae060177.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"0.26.0-canary.ae060177.0","@material/mwc-checkbox":"0.26.0-canary.ae060177.0","@material/mwc-radio":"0.26.0-canary.ae060177.0","@material/mwc-ripple":"0.26.0-canary.ae060177.0","lit-element":"^3.0.0","lit-html":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"0.26.0-canary.ae060177.0","@material/mwc-menu":"0.26.0-canary.ae060177.0","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b919ae5340a9ffc926d328999cc5fe5704922e40","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b919ae5340a9ffc926d328999cc5fe5704922e40/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.ae060177.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-1+EHFmAYbPbxt9hdlARBSsd7FqJGxUkhRbfeWtiiusDkv4WEQDOGKTHDosHRlEdewpaIOPNtscdtkVmfNxlH/w==","shasum":"2e122a59c9522e3caa05e5f6e2ac64df2cdacb6a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.ae060177.0.tgz","fileCount":45,"unpackedSize":232689,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyaPCJuGpaoAgOMSJL8aaNNdZ0WL1kpZsL8vQSESvx/QIgW0DRAfTuNs+4/e27Bl+CdIkdW2VxVX6Lh8NRhAz9GL0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.ae060177.0_1632235111069_0.24217011957907775"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.b6fe2a12.0":{"name":"@material/mwc-list","version":"0.26.0-canary.b6fe2a12.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"0.26.0-canary.b6fe2a12.0","@material/mwc-checkbox":"0.26.0-canary.b6fe2a12.0","@material/mwc-radio":"0.26.0-canary.b6fe2a12.0","@material/mwc-ripple":"0.26.0-canary.b6fe2a12.0","lit-element":"^3.0.0","lit-html":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"0.26.0-canary.b6fe2a12.0","@material/mwc-menu":"0.26.0-canary.b6fe2a12.0","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"06feede8e75d655952f3a43b5c971276c26fe92e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/06feede8e75d655952f3a43b5c971276c26fe92e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.b6fe2a12.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-7wPtBdnLCwlRzHP6C4O+J6+aCEM+kKHbqWm5ooSD1ea6s9fkD54bmebA0bf7pAenzml6Tx76jddCwH7hFX4P9A==","shasum":"400dc08fcdb4e5987da4792a2f5960ddaefde989","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.b6fe2a12.0.tgz","fileCount":45,"unpackedSize":232689,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD+9fsskkYAeW29KfjDflzsND9PPJKcciEbsGL5rWeWeAIgftqCYITy9lnjN3SKR89CnxDYRXWlj1F7Qj+T3TGZhWs="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.b6fe2a12.0_1632341800468_0.5934777590928246"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.07e91417.0":{"name":"@material/mwc-list","version":"0.26.0-canary.07e91417.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"0.26.0-canary.07e91417.0","@material/mwc-checkbox":"0.26.0-canary.07e91417.0","@material/mwc-radio":"0.26.0-canary.07e91417.0","@material/mwc-ripple":"0.26.0-canary.07e91417.0","lit-element":"^3.0.0","lit-html":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"0.26.0-canary.07e91417.0","@material/mwc-menu":"0.26.0-canary.07e91417.0","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"9fcacc1890992ebd650dca508478ea3a276a1ebe","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9fcacc1890992ebd650dca508478ea3a276a1ebe/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.07e91417.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-ePgG7+nvZOA/88D7U7dnY4IbiaG+/2pSGTlg+2GfqwQgqA504ZRj/7Y05XYmOQrukDDr6qN9rSrxkwIIwzKfpQ==","shasum":"cff6237fa7a76986041dc7730b2015e00edc3425","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.07e91417.0.tgz","fileCount":45,"unpackedSize":232689,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmTi/1iK2/rD1/v761gD2m/KPKaebRrUrm0ZM+s/JdTQIgFYbAyjXmsvNeyjvTcUhsBQCRoax/ro9cYVZMo8JVWAs="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.07e91417.0_1632344772134_0.36521684854187586"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.e2203ffa.0":{"name":"@material/mwc-list","version":"0.26.0-canary.e2203ffa.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.65125b3a6.0","@material/dom":"=13.0.0-canary.65125b3a6.0","@material/list":"=13.0.0-canary.65125b3a6.0","@material/mwc-base":"0.26.0-canary.e2203ffa.0","@material/mwc-checkbox":"0.26.0-canary.e2203ffa.0","@material/mwc-radio":"0.26.0-canary.e2203ffa.0","@material/mwc-ripple":"0.26.0-canary.e2203ffa.0","lit-element":"^3.0.0","lit-html":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.65125b3a6.0","@material/feature-targeting":"=13.0.0-canary.65125b3a6.0","@material/mwc-icon":"0.26.0-canary.e2203ffa.0","@material/mwc-menu":"0.26.0-canary.e2203ffa.0","@material/ripple":"=13.0.0-canary.65125b3a6.0","@material/rtl":"=13.0.0-canary.65125b3a6.0","@material/theme":"=13.0.0-canary.65125b3a6.0","@material/typography":"=13.0.0-canary.65125b3a6.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"dccbe3e93b2694b3336adcf33188115ced04a52e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/dccbe3e93b2694b3336adcf33188115ced04a52e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.e2203ffa.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-Q8UMWZXofsoMr7pfliGJYFTnto3CQMlczRFGl5Uqy8hGIpkZmiZjHh9tKpzWAYEcg5/RYgaXh/HCA8XdpCV88g==","shasum":"990a075b71797eed4e1d091d1e7cf6a00108651f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.e2203ffa.0.tgz","fileCount":45,"unpackedSize":232689,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG+wqBozgp/gnl0SeN5asMIA4mnSiZUY9IluhFcnGSvtAiEA9STw7HzuDywTGz+kGMFqMYiUzII3jEhmTpj3qgl7GkI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.e2203ffa.0_1632421681972_0.23035800124655892"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.4abe237e.0":{"name":"@material/mwc-list","version":"0.26.0-canary.4abe237e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.c79aa0cdd.0","@material/dom":"=13.0.0-canary.c79aa0cdd.0","@material/list":"=13.0.0-canary.c79aa0cdd.0","@material/mwc-base":"0.26.0-canary.4abe237e.0","@material/mwc-checkbox":"0.26.0-canary.4abe237e.0","@material/mwc-radio":"0.26.0-canary.4abe237e.0","@material/mwc-ripple":"0.26.0-canary.4abe237e.0","lit-element":"^3.0.0","lit-html":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.c79aa0cdd.0","@material/feature-targeting":"=13.0.0-canary.c79aa0cdd.0","@material/mwc-icon":"0.26.0-canary.4abe237e.0","@material/mwc-menu":"0.26.0-canary.4abe237e.0","@material/ripple":"=13.0.0-canary.c79aa0cdd.0","@material/rtl":"=13.0.0-canary.c79aa0cdd.0","@material/theme":"=13.0.0-canary.c79aa0cdd.0","@material/typography":"=13.0.0-canary.c79aa0cdd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"c0c828f0240aea9472d319d4a1bb77871c960873","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c0c828f0240aea9472d319d4a1bb77871c960873/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.4abe237e.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-wPlNlCwHGb/uwjsguIJpLmvCBr6xn2CD302gNscq2vyQIo3wnO1OhEBC+22P7FJi6zbNqPmxUGmETmrbQQIWyg==","shasum":"26fdc3b706a429e185a67ca92409b7ef0de998c2","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.4abe237e.0.tgz","fileCount":45,"unpackedSize":232689,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCEK7FDSfnLVkfIxMju96vlxPiH3hkwkY18Fj94KHQUWAIgI/TXoUE+3fF5sGMhZonyT+WIRinrux8+vWcB8PrCo+0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.4abe237e.0_1632504691866_0.46656070686298223"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.6278ee5d.0":{"name":"@material/mwc-list","version":"0.26.0-canary.6278ee5d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.c79aa0cdd.0","@material/dom":"=13.0.0-canary.c79aa0cdd.0","@material/list":"=13.0.0-canary.c79aa0cdd.0","@material/mwc-base":"0.26.0-canary.6278ee5d.0","@material/mwc-checkbox":"0.26.0-canary.6278ee5d.0","@material/mwc-radio":"0.26.0-canary.6278ee5d.0","@material/mwc-ripple":"0.26.0-canary.6278ee5d.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.c79aa0cdd.0","@material/feature-targeting":"=13.0.0-canary.c79aa0cdd.0","@material/mwc-icon":"0.26.0-canary.6278ee5d.0","@material/mwc-menu":"0.26.0-canary.6278ee5d.0","@material/ripple":"=13.0.0-canary.c79aa0cdd.0","@material/rtl":"=13.0.0-canary.c79aa0cdd.0","@material/theme":"=13.0.0-canary.c79aa0cdd.0","@material/typography":"=13.0.0-canary.c79aa0cdd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"85137ac5f9a59dd64512524f380c65b268a2344f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/85137ac5f9a59dd64512524f380c65b268a2344f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.6278ee5d.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-c71xPWhOh24EldXnXxejcakxJEkaCWNWP/ULUmuWj9jS2Kt07qsF1j3nCBx03/DRWn2SgxRXa8BFxCdP8dnXOA==","shasum":"0f82a594fbd4a139247bee3b4bf663b32d087ead","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.6278ee5d.0.tgz","fileCount":45,"unpackedSize":232975,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBkttw4Kho97DiYDYDAnD1HYIMSamRW85Q5/4Hv0mfUhAiEAwMt707BjtnSYber6LK/1GOaSlPtfipFgrRT5/8sQmfA="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.6278ee5d.0_1632767505096_0.9435969876678589"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.3a5d5f34.0":{"name":"@material/mwc-list","version":"0.26.0-canary.3a5d5f34.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=13.0.0-canary.c79aa0cdd.0","@material/dom":"=13.0.0-canary.c79aa0cdd.0","@material/list":"=13.0.0-canary.c79aa0cdd.0","@material/mwc-base":"0.26.0-canary.3a5d5f34.0","@material/mwc-checkbox":"0.26.0-canary.3a5d5f34.0","@material/mwc-radio":"0.26.0-canary.3a5d5f34.0","@material/mwc-ripple":"0.26.0-canary.3a5d5f34.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=13.0.0-canary.c79aa0cdd.0","@material/feature-targeting":"=13.0.0-canary.c79aa0cdd.0","@material/mwc-icon":"0.26.0-canary.3a5d5f34.0","@material/mwc-menu":"0.26.0-canary.3a5d5f34.0","@material/ripple":"=13.0.0-canary.c79aa0cdd.0","@material/rtl":"=13.0.0-canary.c79aa0cdd.0","@material/theme":"=13.0.0-canary.c79aa0cdd.0","@material/typography":"=13.0.0-canary.c79aa0cdd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"0708ad010478b6186d6be52d3494f33bd4d40e17","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0708ad010478b6186d6be52d3494f33bd4d40e17/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.3a5d5f34.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-jTXFZqQEciPQBkCZz7M41OfWYXTcO5vMrG3gxach4SawIW/gGy2gelCyYxZPvZU3MJKyMMkWbV+NL/e8MH/ofA==","shasum":"27eece4f1a3b291cbc207968acb68d5a19e68483","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.3a5d5f34.0.tgz","fileCount":45,"unpackedSize":232975,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJdoJMFoy+BXGyDeK8tW34YOo0jN7podAIUOzCC4FmhAIhAMp0FCXM6FBl0G8rIdqV4y1Dah2r6B2ozthUzDNyHJBU"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.3a5d5f34.0_1632782514486_0.12868384573028724"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.143ed3c8.0":{"name":"@material/mwc-list","version":"0.26.0-canary.143ed3c8.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.86b50ef74.0","@material/dom":"=14.0.0-canary.86b50ef74.0","@material/list":"=14.0.0-canary.86b50ef74.0","@material/mwc-base":"0.26.0-canary.143ed3c8.0","@material/mwc-checkbox":"0.26.0-canary.143ed3c8.0","@material/mwc-radio":"0.26.0-canary.143ed3c8.0","@material/mwc-ripple":"0.26.0-canary.143ed3c8.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.86b50ef74.0","@material/feature-targeting":"=14.0.0-canary.86b50ef74.0","@material/mwc-icon":"0.26.0-canary.143ed3c8.0","@material/mwc-menu":"0.26.0-canary.143ed3c8.0","@material/ripple":"=14.0.0-canary.86b50ef74.0","@material/rtl":"=14.0.0-canary.86b50ef74.0","@material/theme":"=14.0.0-canary.86b50ef74.0","@material/typography":"=14.0.0-canary.86b50ef74.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"d25beb586046dd7cd30a302cdbcf1114a66b7770","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d25beb586046dd7cd30a302cdbcf1114a66b7770/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.143ed3c8.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-7MFygBIp+tZb6j9FHLYsHFMgQn0GNE1GgHXyh/hXT4CGwM1e62lHu0OMqzwe7DZMGQLddOGmfF96GLviaBtO/Q==","shasum":"d59884169f9228e8ac345779372d7f79b776e196","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.143ed3c8.0.tgz","fileCount":45,"unpackedSize":232975,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFL5WK5LbciQAE4MRknovW5PrPZ/OHNAfFeADGpDjYRnAiEA9cB1vyt8wKjF7uCbmYpVNVzCI3956RUpHBDQOE88TPU="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.143ed3c8.0_1632880274077_0.12355822871484778"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.e5923d68.0":{"name":"@material/mwc-list","version":"0.26.0-canary.e5923d68.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.86b50ef74.0","@material/dom":"=14.0.0-canary.86b50ef74.0","@material/list":"=14.0.0-canary.86b50ef74.0","@material/mwc-base":"0.26.0-canary.e5923d68.0","@material/mwc-checkbox":"0.26.0-canary.e5923d68.0","@material/mwc-radio":"0.26.0-canary.e5923d68.0","@material/mwc-ripple":"0.26.0-canary.e5923d68.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.86b50ef74.0","@material/feature-targeting":"=14.0.0-canary.86b50ef74.0","@material/mwc-icon":"0.26.0-canary.e5923d68.0","@material/mwc-menu":"0.26.0-canary.e5923d68.0","@material/ripple":"=14.0.0-canary.86b50ef74.0","@material/rtl":"=14.0.0-canary.86b50ef74.0","@material/theme":"=14.0.0-canary.86b50ef74.0","@material/typography":"=14.0.0-canary.86b50ef74.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"41f6e947d4028d5479ec62a20cbf1e1fce3c3a27","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/41f6e947d4028d5479ec62a20cbf1e1fce3c3a27/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.e5923d68.0","_nodeVersion":"14.17.6","_npmVersion":"lerna/3.22.1/node@v14.17.6+x64 (linux)","dist":{"integrity":"sha512-NZgkO+mP3BftnW5EK+Jdx1NFeSvHU8x3A8chVN2hfrmqbI9hT7xE5J/9NSZbV2w87jUGfmIkPI0n7G3EtAxoqA==","shasum":"7542831fc9dab9a430d8e08931a6194dd390b187","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.e5923d68.0.tgz","fileCount":45,"unpackedSize":232975,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIE1xyg3I3Y/RuSxQkwAxcZ1+shzH+xisNwF4LfqJd6gkAiEA8Vgst15zmz03UasVrO9QByP+uRwJfljg4TnNm+FUWnU="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.e5923d68.0_1632960375364_0.6069183819452137"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.d8ed5109.0":{"name":"@material/mwc-list","version":"0.26.0-canary.d8ed5109.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.586e740dd.0","@material/dom":"=14.0.0-canary.586e740dd.0","@material/list":"=14.0.0-canary.586e740dd.0","@material/mwc-base":"0.26.0-canary.d8ed5109.0","@material/mwc-checkbox":"0.26.0-canary.d8ed5109.0","@material/mwc-radio":"0.26.0-canary.d8ed5109.0","@material/mwc-ripple":"0.26.0-canary.d8ed5109.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.586e740dd.0","@material/feature-targeting":"=14.0.0-canary.586e740dd.0","@material/mwc-icon":"0.26.0-canary.d8ed5109.0","@material/mwc-menu":"0.26.0-canary.d8ed5109.0","@material/ripple":"=14.0.0-canary.586e740dd.0","@material/rtl":"=14.0.0-canary.586e740dd.0","@material/theme":"=14.0.0-canary.586e740dd.0","@material/typography":"=14.0.0-canary.586e740dd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"7cb638711a37e4d716e9aecb64598a665d377e7c","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7cb638711a37e4d716e9aecb64598a665d377e7c/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.d8ed5109.0","_nodeVersion":"14.18.0","_npmVersion":"lerna/3.22.1/node@v14.18.0+x64 (linux)","dist":{"integrity":"sha512-wnKyy6sd2nKus7JLc8d/CULP8C725d3ghvts8z2uirxtneNL2Ki0gikC8+VcO6RDGayH9Vdx6yG0X6vXCIiylg==","shasum":"a3dc9118ad171360760bddb3719bb823092c23c7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.d8ed5109.0.tgz","fileCount":45,"unpackedSize":232975,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC9Qtj9nKqld0N1aj23TUEbn/r4e1doRENArfoHscebIAIgZdQD79TbWIkLYq7Um2wt3wYbvoXQEzeLiXRb1hC+3KQ="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.d8ed5109.0_1633044856308_0.5897644264333457"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.0efb9c2c.0":{"name":"@material/mwc-list","version":"0.26.0-canary.0efb9c2c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.586e740dd.0","@material/dom":"=14.0.0-canary.586e740dd.0","@material/list":"=14.0.0-canary.586e740dd.0","@material/mwc-base":"0.26.0-canary.0efb9c2c.0","@material/mwc-checkbox":"0.26.0-canary.0efb9c2c.0","@material/mwc-radio":"0.26.0-canary.0efb9c2c.0","@material/mwc-ripple":"0.26.0-canary.0efb9c2c.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.586e740dd.0","@material/feature-targeting":"=14.0.0-canary.586e740dd.0","@material/mwc-icon":"0.26.0-canary.0efb9c2c.0","@material/mwc-menu":"0.26.0-canary.0efb9c2c.0","@material/ripple":"=14.0.0-canary.586e740dd.0","@material/rtl":"=14.0.0-canary.586e740dd.0","@material/theme":"=14.0.0-canary.586e740dd.0","@material/typography":"=14.0.0-canary.586e740dd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"878935c40ce21b0cfddbf2aab964ba07d23dbb94","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/878935c40ce21b0cfddbf2aab964ba07d23dbb94/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.0efb9c2c.0","_nodeVersion":"14.18.0","_npmVersion":"lerna/3.22.1/node@v14.18.0+x64 (linux)","dist":{"integrity":"sha512-hMmEPVkjuwC1QKtJZ9tb+cN1WhAinaoJZdMaMLGayLpsTwufDiX4oSc5tvn1GkmL3/xD9JYIbXL04IxYxCD3ag==","shasum":"b5d64c3dbe40fb6928ef2fd35208a697f4d1eb4a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.0efb9c2c.0.tgz","fileCount":45,"unpackedSize":232975,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/0D0k4BYJ5CjoYRlZhIGkhmLOHgPVzZ9SqKJZN8IjGQIgL4D+NgVKQtGQUfOuLzmfMl1vi957U7D1bJOETwY9XP0="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.0efb9c2c.0_1633140520499_0.5979383010912029"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.1c9adcb3.0":{"name":"@material/mwc-list","version":"0.26.0-canary.1c9adcb3.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.586e740dd.0","@material/dom":"=14.0.0-canary.586e740dd.0","@material/list":"=14.0.0-canary.586e740dd.0","@material/mwc-base":"0.26.0-canary.1c9adcb3.0","@material/mwc-checkbox":"0.26.0-canary.1c9adcb3.0","@material/mwc-radio":"0.26.0-canary.1c9adcb3.0","@material/mwc-ripple":"0.26.0-canary.1c9adcb3.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.586e740dd.0","@material/feature-targeting":"=14.0.0-canary.586e740dd.0","@material/mwc-icon":"0.26.0-canary.1c9adcb3.0","@material/mwc-menu":"0.26.0-canary.1c9adcb3.0","@material/ripple":"=14.0.0-canary.586e740dd.0","@material/rtl":"=14.0.0-canary.586e740dd.0","@material/theme":"=14.0.0-canary.586e740dd.0","@material/typography":"=14.0.0-canary.586e740dd.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"432b66e41cc474278a452cfd5bd850754fd8b9f3","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/432b66e41cc474278a452cfd5bd850754fd8b9f3/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.1c9adcb3.0","_nodeVersion":"14.18.0","_npmVersion":"lerna/3.22.1/node@v14.18.0+x64 (linux)","dist":{"integrity":"sha512-uZxs7lKzCQJv53N7NGn3YJ2SNoONdxUn1smmsrmyhpuiQED/bfR2rDTQbu/K4TSYDfQYkYwO63RWWU/c83qmiQ==","shasum":"25982cb030c82ca175e86200be4d831e291cb84c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.1c9adcb3.0.tgz","fileCount":45,"unpackedSize":232975,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAVeDI3t88ktiI0GWHCp9tJYw5Rcq3GUJY/9VbBxHkMwAiBeTnwpecucVfsUeltnhm9olU3+vuYvTYMXFfhUhpDtag=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.1c9adcb3.0_1633368837579_0.7582526450742864"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.dfc00d60.0":{"name":"@material/mwc-list","version":"0.26.0-canary.dfc00d60.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.353ca7e9f.0","@material/dom":"=14.0.0-canary.353ca7e9f.0","@material/list":"=14.0.0-canary.353ca7e9f.0","@material/mwc-base":"0.26.0-canary.dfc00d60.0","@material/mwc-checkbox":"0.26.0-canary.dfc00d60.0","@material/mwc-radio":"0.26.0-canary.dfc00d60.0","@material/mwc-ripple":"0.26.0-canary.dfc00d60.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.353ca7e9f.0","@material/feature-targeting":"=14.0.0-canary.353ca7e9f.0","@material/mwc-icon":"0.26.0-canary.dfc00d60.0","@material/mwc-menu":"0.26.0-canary.dfc00d60.0","@material/ripple":"=14.0.0-canary.353ca7e9f.0","@material/rtl":"=14.0.0-canary.353ca7e9f.0","@material/theme":"=14.0.0-canary.353ca7e9f.0","@material/typography":"=14.0.0-canary.353ca7e9f.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3edf5d72f0c17bcf7c2e7377e2c0b4579168d2b0/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.dfc00d60.0","_nodeVersion":"14.18.0","_npmVersion":"lerna/3.22.1/node@v14.18.0+x64 (linux)","dist":{"integrity":"sha512-kWexdeB69MAP4AHG1bxwbWA+/VjBIihyPxEUdN82GOQzZSFw+LgQoh3ptMtW+li06DhMvxdw7r96ELTiCele5w==","shasum":"600f271838957d4074a54cb685569d26ab2e7503","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.dfc00d60.0.tgz","fileCount":45,"unpackedSize":232975,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD/YOTrbzz3HMk0bSxe6XIoPyolga8Nl2GFkWcNrrh8DQIhAPtw3GoT0ve59pau7a16QjH4VOdrJp/H5BYijQ7SEy9b"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.dfc00d60.0_1633741062088_0.8165477613048684"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.c3aa844c.0":{"name":"@material/mwc-list","version":"0.26.0-canary.c3aa844c.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.353ca7e9f.0","@material/dom":"=14.0.0-canary.353ca7e9f.0","@material/list":"=14.0.0-canary.353ca7e9f.0","@material/mwc-base":"0.26.0-canary.c3aa844c.0","@material/mwc-checkbox":"0.26.0-canary.c3aa844c.0","@material/mwc-radio":"0.26.0-canary.c3aa844c.0","@material/mwc-ripple":"0.26.0-canary.c3aa844c.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.353ca7e9f.0","@material/feature-targeting":"=14.0.0-canary.353ca7e9f.0","@material/mwc-icon":"0.26.0-canary.c3aa844c.0","@material/mwc-menu":"0.26.0-canary.c3aa844c.0","@material/ripple":"=14.0.0-canary.353ca7e9f.0","@material/rtl":"=14.0.0-canary.353ca7e9f.0","@material/theme":"=14.0.0-canary.353ca7e9f.0","@material/typography":"=14.0.0-canary.353ca7e9f.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"a792c732afb00bf097879fdcd7a1ac2a0c5d9506","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a792c732afb00bf097879fdcd7a1ac2a0c5d9506/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.c3aa844c.0","_nodeVersion":"14.18.0","_npmVersion":"lerna/3.22.1/node@v14.18.0+x64 (linux)","dist":{"integrity":"sha512-lMItA6EeRb1GpaTpygGW2lbhe9EWP1Lt53Ke4+m2BYlW6vjBG8ipv9nDtrdIsnmmv/GE5e5J7FSLmA1ZhvjQyg==","shasum":"979c8bfabbb8e1bf6f836011b71be4f4c3c431fc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.c3aa844c.0.tgz","fileCount":45,"unpackedSize":232975,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHECFDDEyMqe6gT2NMwEc/XPdEptnqUA+LHV7kcnddNpAiEAv06sGR7EVugEKECsxthnmKqPrhpP7HCqe8Jr3O4eFig="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.c3aa844c.0_1633994084045_0.6404199630075387"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.25.2":{"name":"@material/mwc-list","version":"0.25.2","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.353ca7e9f.0","@material/dom":"=14.0.0-canary.353ca7e9f.0","@material/list":"=14.0.0-canary.353ca7e9f.0","@material/mwc-base":"^0.25.2","@material/mwc-checkbox":"^0.25.2","@material/mwc-radio":"^0.25.2","@material/mwc-ripple":"^0.25.2","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.353ca7e9f.0","@material/feature-targeting":"=14.0.0-canary.353ca7e9f.0","@material/mwc-icon":"^0.25.2","@material/mwc-menu":"^0.25.2","@material/ripple":"=14.0.0-canary.353ca7e9f.0","@material/rtl":"=14.0.0-canary.353ca7e9f.0","@material/theme":"=14.0.0-canary.353ca7e9f.0","@material/typography":"=14.0.0-canary.353ca7e9f.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"c3aa844c2a09ff9868820ce946f25f9df7714560","_id":"@material/mwc-list@0.25.2","_nodeVersion":"12.22.5","_npmVersion":"lerna/3.22.1/node@v12.22.5+x64 (linux)","dist":{"integrity":"sha512-qIiFo9L3+/IDhcf4isgb1ZKI5SshXuWzTfZKcnoDkyUS4KdaoOuNqpwM7K34g4+m2Ocwjyj6kzjLTqMhtLiC7A==","shasum":"c83ecefedd63a68651498e7c42c367bb6ed0dacc","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.25.2.tgz","fileCount":45,"unpackedSize":232855,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICqV/jutYVs4oJFnnDgZw7Hg2xrOtyO9KlVyHkXmsGKBAiEAu0LYwk9R27yD5VeUH2/a2NO0vEi+DHZGVArvuTlUe04="}]},"_npmUser":{"name":"taylorv","email":"brian.t.vann@gmail.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.25.2_1633994318110_0.21788489890526797"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.406d6fe1.0":{"name":"@material/mwc-list","version":"0.26.0-canary.406d6fe1.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.353ca7e9f.0","@material/dom":"=14.0.0-canary.353ca7e9f.0","@material/list":"=14.0.0-canary.353ca7e9f.0","@material/mwc-base":"0.26.0-canary.406d6fe1.0","@material/mwc-checkbox":"0.26.0-canary.406d6fe1.0","@material/mwc-radio":"0.26.0-canary.406d6fe1.0","@material/mwc-ripple":"0.26.0-canary.406d6fe1.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.353ca7e9f.0","@material/feature-targeting":"=14.0.0-canary.353ca7e9f.0","@material/mwc-icon":"0.26.0-canary.406d6fe1.0","@material/mwc-menu":"0.26.0-canary.406d6fe1.0","@material/ripple":"=14.0.0-canary.353ca7e9f.0","@material/rtl":"=14.0.0-canary.353ca7e9f.0","@material/theme":"=14.0.0-canary.353ca7e9f.0","@material/typography":"=14.0.0-canary.353ca7e9f.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"d1410f3120b13ff08ccd731739c038b9fb14af78","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/d1410f3120b13ff08ccd731739c038b9fb14af78/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.406d6fe1.0","_nodeVersion":"14.18.0","_npmVersion":"lerna/3.22.1/node@v14.18.0+x64 (linux)","dist":{"integrity":"sha512-CF+GdTjwcobG7tYLyaozU2KBF6/HiTWDXKFFpuHCtgmtEtsAspmZ8wuSAHBFkFV7IVFTGCmeIw6ifdbteP6tfw==","shasum":"4307d16d77822a3da2278ce959abf7e2e854ebe5","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.406d6fe1.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDVNacerlliRoR7wubEjuTIRs1iCUF5eB0nz3Rm6f7PLgIgdRZa7ZYu7033ZYyCNZkeQJ7MNRZjRtRFNKepiJ4+ijQ="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.406d6fe1.0_1634158790488_0.03243621126712015"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.ca0a674f.0":{"name":"@material/mwc-list","version":"0.26.0-canary.ca0a674f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.353ca7e9f.0","@material/dom":"=14.0.0-canary.353ca7e9f.0","@material/list":"=14.0.0-canary.353ca7e9f.0","@material/mwc-base":"0.26.0-canary.ca0a674f.0","@material/mwc-checkbox":"0.26.0-canary.ca0a674f.0","@material/mwc-radio":"0.26.0-canary.ca0a674f.0","@material/mwc-ripple":"0.26.0-canary.ca0a674f.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.353ca7e9f.0","@material/feature-targeting":"=14.0.0-canary.353ca7e9f.0","@material/mwc-icon":"0.26.0-canary.ca0a674f.0","@material/mwc-menu":"0.26.0-canary.ca0a674f.0","@material/ripple":"=14.0.0-canary.353ca7e9f.0","@material/rtl":"=14.0.0-canary.353ca7e9f.0","@material/theme":"=14.0.0-canary.353ca7e9f.0","@material/typography":"=14.0.0-canary.353ca7e9f.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b8e99d19dfc1b6d5062ada3345d461e9a77f18f1","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b8e99d19dfc1b6d5062ada3345d461e9a77f18f1/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.ca0a674f.0","_nodeVersion":"14.18.0","_npmVersion":"lerna/3.22.1/node@v14.18.0+x64 (linux)","dist":{"integrity":"sha512-hp/L6lH66VxhIAgSZQ8dtb0ZVnYOmhFj97iry7T6BY2KEp6o9Ihur/SLKmOY0MAwUeFS9Y+bVzlKuNcQrLCvtg==","shasum":"d5ac3232e02e53244d3043251487f95c513f92ae","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.ca0a674f.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIE6qEamF7Ih/jKt1/QB+ftlg/kgHB/yIxnxlEST82kAvAiAZnOGb/RCTwOj64wlek3+2pc9N95ctm6MAXQV7EB+Z1Q=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.ca0a674f.0_1634593041892_0.21429018493191498"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.eefcf660.0":{"name":"@material/mwc-list","version":"0.26.0-canary.eefcf660.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.261f2db59.0","@material/dom":"=14.0.0-canary.261f2db59.0","@material/list":"=14.0.0-canary.261f2db59.0","@material/mwc-base":"0.26.0-canary.eefcf660.0","@material/mwc-checkbox":"0.26.0-canary.eefcf660.0","@material/mwc-radio":"0.26.0-canary.eefcf660.0","@material/mwc-ripple":"0.26.0-canary.eefcf660.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.261f2db59.0","@material/feature-targeting":"=14.0.0-canary.261f2db59.0","@material/mwc-icon":"0.26.0-canary.eefcf660.0","@material/mwc-menu":"0.26.0-canary.eefcf660.0","@material/ripple":"=14.0.0-canary.261f2db59.0","@material/rtl":"=14.0.0-canary.261f2db59.0","@material/theme":"=14.0.0-canary.261f2db59.0","@material/typography":"=14.0.0-canary.261f2db59.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"70552d8e831f6542ab42f41bb5d338adcff0500e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/70552d8e831f6542ab42f41bb5d338adcff0500e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.eefcf660.0","_nodeVersion":"14.18.0","_npmVersion":"lerna/3.22.1/node@v14.18.0+x64 (linux)","dist":{"integrity":"sha512-V1GEJExBAXZGuTFzxlB8ytN3lN3+Gveef2sRHDFG6mje1Vw94DddbvaxConDCynu1RU3k4Ea25ufXNRlCGJYrw==","shasum":"d1768e176ebc148ac7ea43021c258f2b7a898ba7","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.eefcf660.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMtQYy3UGpCVNdpDW6H5ok1oA6sZsLD7n5R/wo8/QtggIgFKEeZIe4rJPwEqqWvQ+G38eaT+bc5ygq1A4GuHUOpBM="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.eefcf660.0_1634765040162_0.9314366544929285"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.d21acc8f.0":{"name":"@material/mwc-list","version":"0.26.0-canary.d21acc8f.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.261f2db59.0","@material/dom":"=14.0.0-canary.261f2db59.0","@material/list":"=14.0.0-canary.261f2db59.0","@material/mwc-base":"0.26.0-canary.d21acc8f.0","@material/mwc-checkbox":"0.26.0-canary.d21acc8f.0","@material/mwc-radio":"0.26.0-canary.d21acc8f.0","@material/mwc-ripple":"0.26.0-canary.d21acc8f.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.261f2db59.0","@material/feature-targeting":"=14.0.0-canary.261f2db59.0","@material/mwc-icon":"0.26.0-canary.d21acc8f.0","@material/mwc-menu":"0.26.0-canary.d21acc8f.0","@material/ripple":"=14.0.0-canary.261f2db59.0","@material/rtl":"=14.0.0-canary.261f2db59.0","@material/theme":"=14.0.0-canary.261f2db59.0","@material/typography":"=14.0.0-canary.261f2db59.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"13f43aef10317d911611c572ecc044445a012a2f","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/13f43aef10317d911611c572ecc044445a012a2f/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.d21acc8f.0","_nodeVersion":"14.18.0","_npmVersion":"lerna/3.22.1/node@v14.18.0+x64 (linux)","dist":{"integrity":"sha512-MGvHaoHT0EWDbGOsjczkOJRo0Z9PpHHgkhTrOw+NYMoDKzBb3G8Lahi8ctsDRJyAIQMUJ+yzA7AlAQKUUWNYXw==","shasum":"730c31ea223eb6a5f6f87ebea9d8ec539a0d12d1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.d21acc8f.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDCX7tlhFMwVYz22JWnAeIaBzigUvdoinAt9MXblm1twwIgb2kKODVN/0mVLD0hdo8//w8dZk1MLr1e99zsS5Mer+c="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.d21acc8f.0_1634769172615_0.698892259309835"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.25.3":{"name":"@material/mwc-list","version":"0.25.3","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.261f2db59.0","@material/dom":"=14.0.0-canary.261f2db59.0","@material/list":"=14.0.0-canary.261f2db59.0","@material/mwc-base":"^0.25.3","@material/mwc-checkbox":"^0.25.3","@material/mwc-radio":"^0.25.3","@material/mwc-ripple":"^0.25.3","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.261f2db59.0","@material/feature-targeting":"=14.0.0-canary.261f2db59.0","@material/mwc-icon":"^0.25.3","@material/mwc-menu":"^0.25.3","@material/ripple":"=14.0.0-canary.261f2db59.0","@material/rtl":"=14.0.0-canary.261f2db59.0","@material/theme":"=14.0.0-canary.261f2db59.0","@material/typography":"=14.0.0-canary.261f2db59.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"1f19804bea995fc84ab35feb67668d9874ff10f9","_id":"@material/mwc-list@0.25.3","_nodeVersion":"12.22.5","_npmVersion":"lerna/3.22.1/node@v12.22.5+x64 (linux)","dist":{"integrity":"sha512-2T297qVaQsKv+QDNP2ag9g04RLKO1tm2F6BwwqvdbXTsY+LKYOJe2/aSe0kX2tQLayX4ydy2RnTevo9Ld+c+4g==","shasum":"9cbcb4e535f718e1029d0ae9de637cbe0049d589","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.25.3.tgz","fileCount":45,"unpackedSize":232783,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEeEjDmGlPcNIxZ2wVXKg6Ar59uTLCsFePRwrTAfXOV+AiEAmNR5kPUMbzm4j3xUMDzdy2I/CeRnmlCaGl+nkg7t+30="}]},"_npmUser":{"name":"taylorv","email":"brian.t.vann@gmail.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.25.3_1634838949332_0.24592070431536728"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.60449b7b.0":{"name":"@material/mwc-list","version":"0.26.0-canary.60449b7b.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.9803d2dc1.0","@material/dom":"=14.0.0-canary.9803d2dc1.0","@material/list":"=14.0.0-canary.9803d2dc1.0","@material/mwc-base":"0.26.0-canary.60449b7b.0","@material/mwc-checkbox":"0.26.0-canary.60449b7b.0","@material/mwc-radio":"0.26.0-canary.60449b7b.0","@material/mwc-ripple":"0.26.0-canary.60449b7b.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.9803d2dc1.0","@material/feature-targeting":"=14.0.0-canary.9803d2dc1.0","@material/mwc-icon":"0.26.0-canary.60449b7b.0","@material/mwc-menu":"0.26.0-canary.60449b7b.0","@material/ripple":"=14.0.0-canary.9803d2dc1.0","@material/rtl":"=14.0.0-canary.9803d2dc1.0","@material/theme":"=14.0.0-canary.9803d2dc1.0","@material/typography":"=14.0.0-canary.9803d2dc1.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"cb5b8ebecb046df6d10001a163b69a26954c94bf","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/cb5b8ebecb046df6d10001a163b69a26954c94bf/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.60449b7b.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-iqCPzVsDFhBFwWKFyMuhbnwVzP9Ih/WPFTnV9d2K8SgG/gdsglutC4XVwO0Quss2BRyWG+x+qqPD9V9hozp5mA==","shasum":"501336ad9d7b97d1188f3914fe5115636e3bd583","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.60449b7b.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDUyZxp5UT46TGXhH5rn5g0ZsQ+TiIQ9L//Pd9dV5k7MAiBIDjtw3T6RYmKOm+QzNPM37qGHg10ky8903I+LbzM7TQ=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.60449b7b.0_1634840273903_0.5959384144878657"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.0d8084ed.0":{"name":"@material/mwc-list","version":"0.26.0-canary.0d8084ed.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.9803d2dc1.0","@material/dom":"=14.0.0-canary.9803d2dc1.0","@material/list":"=14.0.0-canary.9803d2dc1.0","@material/mwc-base":"0.26.0-canary.0d8084ed.0","@material/mwc-checkbox":"0.26.0-canary.0d8084ed.0","@material/mwc-radio":"0.26.0-canary.0d8084ed.0","@material/mwc-ripple":"0.26.0-canary.0d8084ed.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.9803d2dc1.0","@material/feature-targeting":"=14.0.0-canary.9803d2dc1.0","@material/mwc-icon":"0.26.0-canary.0d8084ed.0","@material/mwc-menu":"0.26.0-canary.0d8084ed.0","@material/ripple":"=14.0.0-canary.9803d2dc1.0","@material/rtl":"=14.0.0-canary.9803d2dc1.0","@material/theme":"=14.0.0-canary.9803d2dc1.0","@material/typography":"=14.0.0-canary.9803d2dc1.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"ca8c4979ee49843dba32b345040faa8c1e8a22a4","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ca8c4979ee49843dba32b345040faa8c1e8a22a4/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.0d8084ed.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-vJ+0q6y0+CMeqfrn8RSA315CrsLrcxKAAslcY8RIE0zFH1BsR3XacG1mIDAArV3SPmo7oqTBW1htQt1X9+xFRA==","shasum":"d0d060f31a87b0a4dbf9b69b6cf7c32e02f6aef6","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.0d8084ed.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC+p4G0FpB6O0MjJP0qvitfEosOsf2FiLhVFPwAORzDCgIgMloiBRlzs88nTtHKOkesmckTz3fbozm0SfXr1pM7Rg8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.0d8084ed.0_1635443119226_0.7713968450638888"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.232327ee.0":{"name":"@material/mwc-list","version":"0.26.0-canary.232327ee.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.a986df922.0","@material/dom":"=14.0.0-canary.a986df922.0","@material/list":"=14.0.0-canary.a986df922.0","@material/mwc-base":"0.26.0-canary.232327ee.0","@material/mwc-checkbox":"0.26.0-canary.232327ee.0","@material/mwc-radio":"0.26.0-canary.232327ee.0","@material/mwc-ripple":"0.26.0-canary.232327ee.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.a986df922.0","@material/feature-targeting":"=14.0.0-canary.a986df922.0","@material/mwc-icon":"0.26.0-canary.232327ee.0","@material/mwc-menu":"0.26.0-canary.232327ee.0","@material/ripple":"=14.0.0-canary.a986df922.0","@material/rtl":"=14.0.0-canary.a986df922.0","@material/theme":"=14.0.0-canary.a986df922.0","@material/typography":"=14.0.0-canary.a986df922.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"0645d0b4b0eac5799fc20a3bd279788eb66a7564","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/0645d0b4b0eac5799fc20a3bd279788eb66a7564/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.232327ee.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-yvzmgvfOreHBM836P3AxmBed6G/PTJi1uTNZponlAVKby7ogkx4XQOW2WZN2FYx4uSCgjbXR8ghX87VaUEjCVg==","shasum":"b695734e9dc8f713608fc2824b8d419b057ee536","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.232327ee.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD5EYj6UGFDA3jeD5PUzlvXKO2LVB/kteyxUx/UBNCR0wIhAMAyt7WWWoOChRn0jTLnu3VBc0+nI6i+2JzlxzfmQggN"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.232327ee.0_1635797770972_0.52784493477707"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.0a492ae8.0":{"name":"@material/mwc-list","version":"0.26.0-canary.0a492ae8.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.a986df922.0","@material/dom":"=14.0.0-canary.a986df922.0","@material/list":"=14.0.0-canary.a986df922.0","@material/mwc-base":"0.26.0-canary.0a492ae8.0","@material/mwc-checkbox":"0.26.0-canary.0a492ae8.0","@material/mwc-radio":"0.26.0-canary.0a492ae8.0","@material/mwc-ripple":"0.26.0-canary.0a492ae8.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.a986df922.0","@material/feature-targeting":"=14.0.0-canary.a986df922.0","@material/mwc-icon":"0.26.0-canary.0a492ae8.0","@material/mwc-menu":"0.26.0-canary.0a492ae8.0","@material/ripple":"=14.0.0-canary.a986df922.0","@material/rtl":"=14.0.0-canary.a986df922.0","@material/theme":"=14.0.0-canary.a986df922.0","@material/typography":"=14.0.0-canary.a986df922.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"9f520a49648fd39a7140df761448008fe0fbb492","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9f520a49648fd39a7140df761448008fe0fbb492/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.0a492ae8.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-eINxE7iOLnjTL34xjqneLH7fK2/6qOkma9mEnEZ81cvxyJc5+Tu0LqYi9OoF3uf5JH4Y27vgt8yU3QzEgDyRMg==","shasum":"2e3317b2ea9841c85d3343c9367f182988c894ff","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.0a492ae8.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID0Q0IfH7WOYwY5CVAu8dKw4ZkE4Q9llV8GZWdBIEaL+AiAoe7jX8J6yveV0fhGcnifOWrxAIH2F776RvYjNPbP/sA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.0a492ae8.0_1635847252793_0.5204993896248602"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.0aa18745.0":{"name":"@material/mwc-list","version":"0.26.0-canary.0aa18745.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.a986df922.0","@material/dom":"=14.0.0-canary.a986df922.0","@material/list":"=14.0.0-canary.a986df922.0","@material/mwc-base":"0.26.0-canary.0aa18745.0","@material/mwc-checkbox":"0.26.0-canary.0aa18745.0","@material/mwc-radio":"0.26.0-canary.0aa18745.0","@material/mwc-ripple":"0.26.0-canary.0aa18745.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.a986df922.0","@material/feature-targeting":"=14.0.0-canary.a986df922.0","@material/mwc-icon":"0.26.0-canary.0aa18745.0","@material/mwc-menu":"0.26.0-canary.0aa18745.0","@material/ripple":"=14.0.0-canary.a986df922.0","@material/rtl":"=14.0.0-canary.a986df922.0","@material/theme":"=14.0.0-canary.a986df922.0","@material/typography":"=14.0.0-canary.a986df922.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"5345838b7f3a3ec41bf4ef997759be6aae3cd340","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/5345838b7f3a3ec41bf4ef997759be6aae3cd340/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.0aa18745.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-qdvGqPF7eAmaDTfE2Lx0MlnY7m3WWJTGNpdHJu2f0KVGKCI/Jn8mUXtWN55kn7CPIgZkeVsv5bS7auHUGCd6iw==","shasum":"8f006d9db8642f932057dbaa06673f82cad24148","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.0aa18745.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCmRQ7JKeRdm+elhP6Y9k3Qen3NBp6ZK+xixw7QhnZ+8QIgAx7g88bpwqIuWUcyHxW2ZjVfActSC8fv7bLr2sFh2rQ="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.0aa18745.0_1635876496304_0.95737844471664"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.f3e28323.0":{"name":"@material/mwc-list","version":"0.26.0-canary.f3e28323.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.a986df922.0","@material/dom":"=14.0.0-canary.a986df922.0","@material/list":"=14.0.0-canary.a986df922.0","@material/mwc-base":"0.26.0-canary.f3e28323.0","@material/mwc-checkbox":"0.26.0-canary.f3e28323.0","@material/mwc-radio":"0.26.0-canary.f3e28323.0","@material/mwc-ripple":"0.26.0-canary.f3e28323.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.a986df922.0","@material/feature-targeting":"=14.0.0-canary.a986df922.0","@material/mwc-icon":"0.26.0-canary.f3e28323.0","@material/mwc-menu":"0.26.0-canary.f3e28323.0","@material/ripple":"=14.0.0-canary.a986df922.0","@material/rtl":"=14.0.0-canary.a986df922.0","@material/theme":"=14.0.0-canary.a986df922.0","@material/typography":"=14.0.0-canary.a986df922.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"ebbbec0b1b0e29da237ec87bebd889c3af847f1b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/ebbbec0b1b0e29da237ec87bebd889c3af847f1b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.f3e28323.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-pMlIx4joWyYE9cD1jlS9xt+ywL0b5mjPruG1/KbEsdQlBfbSd/7MbKG3ZL0N4MA/J2hOAba69bJJ1PkkB1tFrg==","shasum":"eafac3721be61bb384f6a6f0ae7bfd39b69a3df1","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.f3e28323.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCV7NegO9yGs/+xcXsWwBlJrGv3OuXRbFKAtXvfHITAlQIgNhY5LXuHkJ+PdgJDsAoFGlMdhcmnpz9sxvJOsU9Rq7U="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.f3e28323.0_1635879598148_0.07961884886500759"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.27e05c5d.0":{"name":"@material/mwc-list","version":"0.26.0-canary.27e05c5d.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.a986df922.0","@material/dom":"=14.0.0-canary.a986df922.0","@material/list":"=14.0.0-canary.a986df922.0","@material/mwc-base":"0.26.0-canary.27e05c5d.0","@material/mwc-checkbox":"0.26.0-canary.27e05c5d.0","@material/mwc-radio":"0.26.0-canary.27e05c5d.0","@material/mwc-ripple":"0.26.0-canary.27e05c5d.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.a986df922.0","@material/feature-targeting":"=14.0.0-canary.a986df922.0","@material/mwc-icon":"0.26.0-canary.27e05c5d.0","@material/mwc-menu":"0.26.0-canary.27e05c5d.0","@material/ripple":"=14.0.0-canary.a986df922.0","@material/rtl":"=14.0.0-canary.a986df922.0","@material/theme":"=14.0.0-canary.a986df922.0","@material/typography":"=14.0.0-canary.a986df922.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"c052b0acfe9f929e6bae475576f23f8349bde578","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/c052b0acfe9f929e6bae475576f23f8349bde578/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.27e05c5d.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-iAQAhnkaoMV+ZDLN7wYZIgtlS7CRuhZuhIi7m9mBHOZTjKLMZW/deL5gHfTsh4iXIF17XKcMKYyr/CVI6D7nhw==","shasum":"c6c3d3e2b399290f5f106dc9ba0218bf801bee8a","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.27e05c5d.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHwkQkUXckg3+KRhTUKjqn17PwrFiDT/TSJwNcPyCx/TAiEAh3EnG+8L+p2mkhjUXgDpAeSLi8FmQ9JrtZx/ILeblaI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.27e05c5d.0_1635965123438_0.6047735754548604"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.b9e44af7.0":{"name":"@material/mwc-list","version":"0.26.0-canary.b9e44af7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.a986df922.0","@material/dom":"=14.0.0-canary.a986df922.0","@material/list":"=14.0.0-canary.a986df922.0","@material/mwc-base":"0.26.0-canary.b9e44af7.0","@material/mwc-checkbox":"0.26.0-canary.b9e44af7.0","@material/mwc-radio":"0.26.0-canary.b9e44af7.0","@material/mwc-ripple":"0.26.0-canary.b9e44af7.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.a986df922.0","@material/feature-targeting":"=14.0.0-canary.a986df922.0","@material/mwc-icon":"0.26.0-canary.b9e44af7.0","@material/mwc-menu":"0.26.0-canary.b9e44af7.0","@material/ripple":"=14.0.0-canary.a986df922.0","@material/rtl":"=14.0.0-canary.a986df922.0","@material/theme":"=14.0.0-canary.a986df922.0","@material/typography":"=14.0.0-canary.a986df922.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"93bbd63ef108db911df936720517c5068ef30dcb","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/93bbd63ef108db911df936720517c5068ef30dcb/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.b9e44af7.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-BiEal1xT3Ki5ugCBEwlWqmWSzNvLRmb1Ams0DwcCxzZ3M48mL1bESEkeblXbJLHEknY1BCCEkfHDceMoXU1o/Q==","shasum":"d89b37a740e2f0ac700ec8effb26dd0c8ed8de63","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.b9e44af7.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAnJNqXRvgncu+2Xsd7b2FxRbMoFDHNaQ2wPaT9xxaI8AiA3vT5iU25LgZ2feuyDRfCNArAa0Apbi7lX6vokQZ96MA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.b9e44af7.0_1635966267067_0.960607166145621"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.448f6cb9.0":{"name":"@material/mwc-list","version":"0.26.0-canary.448f6cb9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.a986df922.0","@material/dom":"=14.0.0-canary.a986df922.0","@material/list":"=14.0.0-canary.a986df922.0","@material/mwc-base":"0.26.0-canary.448f6cb9.0","@material/mwc-checkbox":"0.26.0-canary.448f6cb9.0","@material/mwc-radio":"0.26.0-canary.448f6cb9.0","@material/mwc-ripple":"0.26.0-canary.448f6cb9.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.a986df922.0","@material/feature-targeting":"=14.0.0-canary.a986df922.0","@material/mwc-icon":"0.26.0-canary.448f6cb9.0","@material/mwc-menu":"0.26.0-canary.448f6cb9.0","@material/ripple":"=14.0.0-canary.a986df922.0","@material/rtl":"=14.0.0-canary.a986df922.0","@material/theme":"=14.0.0-canary.a986df922.0","@material/typography":"=14.0.0-canary.a986df922.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"b9833961f155dca92373d3a6f0476bc8cef934a2","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/b9833961f155dca92373d3a6f0476bc8cef934a2/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.448f6cb9.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-1xx148CWYvnZsie63BUdiWZQ+iWXBQNGcKRnf5ltLAy5DKLY439ftxgZHvLPuMSb/7X/+QEPT+u4fCNCU0PPYg==","shasum":"0b94675b56b921f18abfda4a07b38c4bd4f82f8e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.448f6cb9.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDWGeBupKy/ADq97sIh7BQaK5G16T8mVf5CJELAPPL8ewIgWMF9HVioIhFg8L0ab9QEDMPaqnEE9QKyrwNai1nOevM="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.448f6cb9.0_1636049298345_0.6346390549990608"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.8067ce28.0":{"name":"@material/mwc-list","version":"0.26.0-canary.8067ce28.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.a986df922.0","@material/dom":"=14.0.0-canary.a986df922.0","@material/list":"=14.0.0-canary.a986df922.0","@material/mwc-base":"0.26.0-canary.8067ce28.0","@material/mwc-checkbox":"0.26.0-canary.8067ce28.0","@material/mwc-radio":"0.26.0-canary.8067ce28.0","@material/mwc-ripple":"0.26.0-canary.8067ce28.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.a986df922.0","@material/feature-targeting":"=14.0.0-canary.a986df922.0","@material/mwc-icon":"0.26.0-canary.8067ce28.0","@material/mwc-menu":"0.26.0-canary.8067ce28.0","@material/ripple":"=14.0.0-canary.a986df922.0","@material/rtl":"=14.0.0-canary.a986df922.0","@material/theme":"=14.0.0-canary.a986df922.0","@material/typography":"=14.0.0-canary.a986df922.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"a4d0d35b15bd6e7a29375f11c520886e5b9d168e","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a4d0d35b15bd6e7a29375f11c520886e5b9d168e/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.8067ce28.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-djjCWvWuBp29BEF056ryu5cQQ3iW0EproqstQUGLg/dD085LbV0QXIhEX6BOwXNnEaSdtRP+laXd6yk/zG6Brw==","shasum":"656fc7e66c259a465bab8b2d10741363cc21bc4e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.8067ce28.0.tgz","fileCount":45,"unpackedSize":232903,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCH5+s/cOS3cW3aLgXMB3lt0LdPJcAIDGmPGR3+0+bPaAIhALw0UUKKRSaMKynGS+CBYtcp6rcyRGUlVc4LscP4GfOq"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"bwobrien","email":"obrien.test@gmail.com"},{"name":"lynnjepsen","email":"lynnjepsen@google.com"},{"name":"acdvorak","email":"acdvorak@gmail.com"},{"name":"kfranqueiro","email":"kenneth.franqueiro@gmail.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"bonniez","email":"bonniez@google.com"},{"name":"moog16","email":"mattgoo@gmail.com"},{"name":"williamernest","email":"williamernest@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.8067ce28.0_1636064570936_0.5965178639880409"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.345c2bb9.0":{"name":"@material/mwc-list","version":"0.26.0-canary.345c2bb9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.43d08ba77.0","@material/dom":"=14.0.0-canary.43d08ba77.0","@material/list":"=14.0.0-canary.43d08ba77.0","@material/mwc-base":"0.26.0-canary.345c2bb9.0","@material/mwc-checkbox":"0.26.0-canary.345c2bb9.0","@material/mwc-radio":"0.26.0-canary.345c2bb9.0","@material/mwc-ripple":"0.26.0-canary.345c2bb9.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.43d08ba77.0","@material/feature-targeting":"=14.0.0-canary.43d08ba77.0","@material/mwc-icon":"0.26.0-canary.345c2bb9.0","@material/mwc-menu":"0.26.0-canary.345c2bb9.0","@material/ripple":"=14.0.0-canary.43d08ba77.0","@material/rtl":"=14.0.0-canary.43d08ba77.0","@material/theme":"=14.0.0-canary.43d08ba77.0","@material/typography":"=14.0.0-canary.43d08ba77.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"3e7898316da6adc11d19b54d685e52bc4bb79733","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3e7898316da6adc11d19b54d685e52bc4bb79733/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.345c2bb9.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-hgDnEoh388A3ax4LeqRqBoPB88kQjzz2YAmBBfTJX6KZaSP3msXlieM4+IiMfM5g5HBabDWIEPGNJ8TzMCE7xw==","shasum":"09b0b51f94ea719e55adff1cf6cf12a9c8c58639","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.345c2bb9.0.tgz","fileCount":45,"unpackedSize":232903,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhqP4VCRA9TVsSAnZWagAATdkQAJWCoMygvvGXlxXHd1yY\nEJNw5J1BKmtRKZXD+srg3yhlkBD2O58JmP0JH4BnKWFBjqGdv63UIAkFNvYk\nOrQsBL+GyuSang2+knmsa8rXEmTR7ZPne4oWx17XkiloYEEdRApq53Ag67an\nipoD/IT5vYTH7Mudl2xTHlbdX3sMfFaaK4fYkv4Okoym184otqgmiW4a2H/e\n0rZ4f8/qosjQvnwzE38no3dghDvuyAQSV/Cc0e+wcC3/4/1DtkSbYqPAKxMn\nIN2mRi+M6zZu2zr8sP/0SyUna+fdMnE2i+7Pumg6q7YGPuU4MNB4cDuhuR4M\nfzpLNti8n0SjiO/4KogyLugtV60SwmxHuWpbd7BnujAYI+UW+ck3dyxZdFLU\nZAbUlxgrLxUtPaaaJ+6pM6h6TELu/i2dtRtUKP2LNp3aFjlloJvcwBdWiQ6z\n5HSQqarhLKMaMUcvNatgKwnfufnPprkYqFe5HmBAMMn6WDfpGPC66++4BCX2\nnZdZhMHBhAz8hYDZ+Uh4yc870dR6brvEPpYl87v+/Syzk8wVE8QhOHyycA2+\ngLpVna0sbuOZXQEFjzNV9DRfgH9Vv5pnSy8lspO3zoXd3XmkYIbyMdu4lVcu\nmM/ReN13R2/gxUR58AAPNXAEZqees1ufBvSHrwvW7BIuM9qpXEyP3g09g4bW\nrAWb\r\n=p20i\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDduS6yNDd8U3lKCc8HHosBmjiEhD8TVyDPgiVdKpRdlAIgFCm72a7YXfEUpW5Kb60LuUzdM/JBXIG5ZC2T4wb8VII="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.345c2bb9.0_1638465045753_0.11330535914547668"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.0547aeeb.0":{"name":"@material/mwc-list","version":"0.26.0-canary.0547aeeb.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.17a072535.0","@material/dom":"=14.0.0-canary.17a072535.0","@material/list":"=14.0.0-canary.17a072535.0","@material/mwc-base":"0.26.0-canary.0547aeeb.0","@material/mwc-checkbox":"0.26.0-canary.0547aeeb.0","@material/mwc-radio":"0.26.0-canary.0547aeeb.0","@material/mwc-ripple":"0.26.0-canary.0547aeeb.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.17a072535.0","@material/feature-targeting":"=14.0.0-canary.17a072535.0","@material/mwc-icon":"0.26.0-canary.0547aeeb.0","@material/mwc-menu":"0.26.0-canary.0547aeeb.0","@material/ripple":"=14.0.0-canary.17a072535.0","@material/rtl":"=14.0.0-canary.17a072535.0","@material/theme":"=14.0.0-canary.17a072535.0","@material/typography":"=14.0.0-canary.17a072535.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"2115410a9593d1f2c95099961aed3e6e61255f88","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/2115410a9593d1f2c95099961aed3e6e61255f88/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.0547aeeb.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-ybW/8yCagD1DjpCC839rOGoMpojUaCy5q4275qngPADQE57ilz6/zBAU7fgHPMt+Ew9uS+Oatj8Ej9tSlgs6dw==","shasum":"ecd4a749336642623fb2fbcea30a18dd5579c962","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.0547aeeb.0.tgz","fileCount":45,"unpackedSize":232903,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhrjwjCRA9TVsSAnZWagAAzaMP/j1GaecKiRAsF2X96C9+\ngaVDd4HVG+8AuDP3ilAgDjk75JaKEHudG673wsK+v+atCoLIb+mW4a2WzgUl\n0FeIXJPld7zhAmkdj+ebOPS6F1y9z7YgmvMgYmArLAaV7brQIXDF86/mkLPg\ne8R9cghIK2RlK2+a7jLzCP3k0aBGYPWLbOz/s5dvfeFfJqQ/jG1B8CgkgDjl\nTwlrR+7Hri4JsyP8wBc9EVjmqnTUVpng00GgACVm4px+MK003vAIj4uE6Wbu\nsog955z7XmRYcaAiR5i+ZIlS18mT6foMC/wjIqK6x1zSozj75FMX93CNosEg\nx0L6ynkdz/GB9m026Isockh8al18LTSG+ReYMKl3MDBZbeg8bPsV6fjgHGT8\nCow1WRyDj8DEUm8T6ulMDxIWUNnorewZ31c0OP8UkIiuyRRKE8Iy37/XSiZZ\n92XTPzRyqcbBOhbBrUzIFpAepGT9V/OMdm+PqXltwsXST7vG1y2mWyQBUuO5\nEi2gFoM3JMmtLARxlZ+cErxm7+CFOLjyOUawDKOwYCm+9Lgzr1wFtqAdlEuu\nLXgj2UnaZ09LWKOdNG/Kt1aT+hD53dDQIGg1x6HDRkmT40FMvcV/Pwb4OT3n\nMa0K/cESEhTzaZpi4n7eMRC9nchyAIlcYZgcMnhOLHIJDuI0y397smryKkJg\nBP+E\r\n=DlI5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA0dNVKwRm92AAYE4G5fFmmF9mn+7ae+U5nXYPoKKGNbAiA6zsP5W70RX+ZaIZ5r+osCrxNuu7vOlojXEZYfwQwqOA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.0547aeeb.0_1638808611562_0.06339551299804458"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.3b2452cc.0":{"name":"@material/mwc-list","version":"0.26.0-canary.3b2452cc.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.b6510c8c1.0","@material/dom":"=14.0.0-canary.b6510c8c1.0","@material/list":"=14.0.0-canary.b6510c8c1.0","@material/mwc-base":"0.26.0-canary.3b2452cc.0","@material/mwc-checkbox":"0.26.0-canary.3b2452cc.0","@material/mwc-radio":"0.26.0-canary.3b2452cc.0","@material/mwc-ripple":"0.26.0-canary.3b2452cc.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.b6510c8c1.0","@material/feature-targeting":"=14.0.0-canary.b6510c8c1.0","@material/mwc-icon":"0.26.0-canary.3b2452cc.0","@material/mwc-menu":"0.26.0-canary.3b2452cc.0","@material/ripple":"=14.0.0-canary.b6510c8c1.0","@material/rtl":"=14.0.0-canary.b6510c8c1.0","@material/theme":"=14.0.0-canary.b6510c8c1.0","@material/typography":"=14.0.0-canary.b6510c8c1.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/a95f7a1cbf5dd38cd64c9bb8e02e76d0b8927f1d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.3b2452cc.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-u2R7HGS//x/Ud5GwKQs0w+zy1IZrUBQZiT4jrGypEBcKoS+/mvLQtG/fpkrKrVd9NqCGM1Q5NOFk851zhbPoOw==","shasum":"0f8050c420a53b6df18f70516858f1cfb2e265d8","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.3b2452cc.0.tgz","fileCount":45,"unpackedSize":232903,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhsUh5CRA9TVsSAnZWagAApzIQAKOASo+gZTzdPGH/RoRg\nIUyvozQK5gD/0xqwX3FClvE9DtXYrtaG7p0kdy+3YC/zg2OteiKpXKIhviaz\nmcvUJMLFIJRN+O4FmLZRu8nzFTUEEflODmfviynxwMZo5UAD3w4FcVkRwavN\nWC0E17407kVGK3brLB6SfOPnluO35xOTOuLN3SPUCit66lAeUS73SGJYdUua\n2fWEf7VfZVYEsy0ZsjiT0FJEkEHRddeWo3T8DGArikcOw976Ch+DZvQyt600\n46nAUsIVTrL0Rh+MOaCblc72FgBFfOm42tA8lZJJDSPOWOXyUdUUsQ4nHSY8\nuV88sFuPZIVwhaCwAKTqafzBoHQ5OQAyBMSCiB/5YjnCDV0JhZwlzvUgQts7\nVwVP+UWkh+AGvvGjYGlR91yfh0Mr/flNc8jvTVOmxf+W3EVXRpEZ7F9CNm4n\nSQfGLRzTmu/QrZmCLBZMPrKEPHy6F4XwlfNhyFcEbSrc9dHhiDeQ11nszHEy\nC8Qsr6JVNiFOkJ/Giw5OJW/lmkQ1YI+ujRg4qB2vK2ugdd0l9ZhWtD7TBX6t\nASTbzq1sxdgOxqxRAYONqEUmHg03RuYjESUxDM18qGMKATDeCQIuYkup9bBD\nSRIaO9TlhUpdsiQhMw2qhIP31xMKd76Hf+9eKDloYkCMgsrLJgCJ4Zctz26p\nRpUz\r\n=/bb8\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCRJMUAlIfXuLa2/r21izj6S5RVrB/Qfz/J9/TyI8ZFpgIhALBLQ1W3uBgah2IQPXrtdmZt5WAONKYlAMyUb31HAShT"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.3b2452cc.0_1639008376885_0.5845516829292146"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.cf7ba5a9.0":{"name":"@material/mwc-list","version":"0.26.0-canary.cf7ba5a9.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.f460e23da.0","@material/dom":"=14.0.0-canary.f460e23da.0","@material/list":"=14.0.0-canary.f460e23da.0","@material/mwc-base":"0.26.0-canary.cf7ba5a9.0","@material/mwc-checkbox":"0.26.0-canary.cf7ba5a9.0","@material/mwc-radio":"0.26.0-canary.cf7ba5a9.0","@material/mwc-ripple":"0.26.0-canary.cf7ba5a9.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.f460e23da.0","@material/feature-targeting":"=14.0.0-canary.f460e23da.0","@material/mwc-icon":"0.26.0-canary.cf7ba5a9.0","@material/mwc-menu":"0.26.0-canary.cf7ba5a9.0","@material/ripple":"=14.0.0-canary.f460e23da.0","@material/rtl":"=14.0.0-canary.f460e23da.0","@material/theme":"=14.0.0-canary.f460e23da.0","@material/typography":"=14.0.0-canary.f460e23da.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"7e92aaee33b1c30269a52ec2c26232d0690d3d58","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/7e92aaee33b1c30269a52ec2c26232d0690d3d58/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.cf7ba5a9.0","_nodeVersion":"14.18.1","_npmVersion":"lerna/3.22.1/node@v14.18.1+x64 (linux)","dist":{"integrity":"sha512-aeqfII8oOS48nz7VeMP8mN0ifaqdhtxw+pIvKC1cKpJRF72aPIZLOqApbdf388m13LKyxvZ78dCcUdRheeAMcg==","shasum":"352e8f41341331f0458a62b2b754694b72257f57","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.cf7ba5a9.0.tgz","fileCount":45,"unpackedSize":232903,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhs6V1CRA9TVsSAnZWagAAmUUP/A2FtgTDNWNI2OmG64Ug\nak508GJthf+PhJbAsPvbyEI8cHR9nixQpJMCjOMOSVhidmPpAwm7r2lny/wf\n2BE/ETlxV0uv2G/FltvMdCaKZGwHC/8+P5ANzQtkq7YmEZaT+URAlFKwM6sF\nrYHVc1/YNX5oRt7glnp3tZqUubjKa+d4ZvDV03r/aDvVcoNQfcqqTNtSShL1\nK0fJjjI5SnSHW/a/2Dr1czVDScXV+SYK1F7pd5JsshGSi2Lwuo3ph53ZChnd\nePdwzCGDlkJJH9tsuLYOiHJjxFTPSPl8MHRtDd4D8t+dW4AuKk0M8i0MBKm7\n/pOVm2eFs/mjZ8eWHci4AAiIXDI2gfNyoFy27FMzTOTpwDwiY9Dsi2I/18SP\nVXaarl397jH9OG1LZWdx6xKaBWb+EMGGJPDTKPrNMSg1AGTLhnf5v+isBzss\nmZh7MXJxR6/HT0kO7L2UawDDEqa8w5wZr3+t4HHtZ+NqgX/PAy4tizVI5bxt\n32LATML4TK2yXaJR/dsZvNL/8yYzIcBiW30/EcPe2o+7JOEP2tQ3EarisrUK\n+wlaQeNhlrrk0+9opRSup8m4Uk78UPkyh7KBQPLTc4WWl+e4ZPL6dBCdqY3e\n1jHVsTaUprI32RBhJvlkP4me++NDksfLPlMPC5O0CQoVwsZqSHo4K4Tqet+G\nj+vn\r\n=ctkO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIACFPo+yUOiTZoYdbwGFHTgJmkLstGu6Cs/1oVeIwpXUAiBuA7yxihxmGLh9rJQFdZu7BduW4vXUnQlHG5f9cvNvpA=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.cf7ba5a9.0_1639163253582_0.04473363850855372"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.e1bcf14e.0":{"name":"@material/mwc-list","version":"0.26.0-canary.e1bcf14e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.3366a71d7.0","@material/dom":"=14.0.0-canary.3366a71d7.0","@material/list":"=14.0.0-canary.3366a71d7.0","@material/mwc-base":"0.26.0-canary.e1bcf14e.0","@material/mwc-checkbox":"0.26.0-canary.e1bcf14e.0","@material/mwc-radio":"0.26.0-canary.e1bcf14e.0","@material/mwc-ripple":"0.26.0-canary.e1bcf14e.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.3366a71d7.0","@material/feature-targeting":"=14.0.0-canary.3366a71d7.0","@material/mwc-icon":"0.26.0-canary.e1bcf14e.0","@material/mwc-menu":"0.26.0-canary.e1bcf14e.0","@material/ripple":"=14.0.0-canary.3366a71d7.0","@material/rtl":"=14.0.0-canary.3366a71d7.0","@material/theme":"=14.0.0-canary.3366a71d7.0","@material/typography":"=14.0.0-canary.3366a71d7.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"3cb6bc85426db9ac617c732735c808fd66cd1572","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/3cb6bc85426db9ac617c732735c808fd66cd1572/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.e1bcf14e.0","_nodeVersion":"14.18.2","_npmVersion":"lerna/3.22.1/node@v14.18.2+x64 (linux)","dist":{"integrity":"sha512-Z14m278E7xubd03mWhYxur3Edn+uUswauHQV8SlUHfX89mzWtT/kLha8zcro8u3OfG+sb+0XjyPhKNENveHkcg==","shasum":"1d9170b4282eaf57ac6ff6312dbf1d8105ffff40","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.e1bcf14e.0.tgz","fileCount":45,"unpackedSize":232943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhy3eUCRA9TVsSAnZWagAAQaIP/Ak8n8eqvxPfXN0cALI2\nobxdMUkejyf8YiFkijIHFB+hihsRb+aGtL+sGcp4Kbr049Fmar0fHwaEr6XG\nfQxoDrHbJhc4dZd03u7eFtFBg1/kQjk7OdVLFqVd0Phje6SWZOENtmeffBVs\nHRa+/LGF3z7MxfSaAkgfGidUEg6MYlV+w/WWF7YuWAKMcDAHVZDy4n+KRjnZ\nGbuj7APViG1KJ7rtOJK3wv8Q9MYri5pywvSDFV7c5ztfu9YvE9dJ6KGXDdMW\nuY66n9+t3MGdu/hminy3+MvSBbFs19dX/b6PW+qqQxSK0hvzGN9VxDCrF4mU\nZVLTcrL+icqmnAkNiCBhqHYYD7BLOARuwMV1PglmwWT6Kp8AkAconxblm2VG\nRdHRpjoTAtqo2WWH7CCICloaQ6VHOy4Iv6WeZsuh2XAhdWddITAeIAdFQ+E4\n/FUUtwRqeYC97IBTDZwSAUUN4yQCaRkFj7jS9q3EyWdxNL6Fs/ugGUbyaJSl\nl6hllu0k8YEt9X96fYi90Uywuv6XkK9mE6NU52OAbcpU7OncI8QWqf+3eStj\n4a/lGNShjoiFtJnwwCz7Ql9FBt2V+QgWPikNkYChyPor1vTxy2z3v01d8ljj\nZY9eI7Dr2/YFLNQJb9j52965qrc4qVlrYdtkN9aPDM0KyMuVfUWkhjbX4V75\nct+k\r\n=OZ1e\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsuQi3IwsGDtLY3e8mrr19KxUR0OYC10bfVw0A1rGxeAIhAOP3FSsU35UwG7c/iXushJPo+kUBTblf8sJUjgmyeyVe"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.e1bcf14e.0_1640724371831_0.44165181385318064"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.b9d35b69.0":{"name":"@material/mwc-list","version":"0.26.0-canary.b9d35b69.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.c047f7c19.0","@material/dom":"=14.0.0-canary.c047f7c19.0","@material/list":"=14.0.0-canary.c047f7c19.0","@material/mwc-base":"0.26.0-canary.b9d35b69.0","@material/mwc-checkbox":"0.26.0-canary.b9d35b69.0","@material/mwc-radio":"0.26.0-canary.b9d35b69.0","@material/mwc-ripple":"0.26.0-canary.b9d35b69.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.c047f7c19.0","@material/feature-targeting":"=14.0.0-canary.c047f7c19.0","@material/mwc-icon":"0.26.0-canary.b9d35b69.0","@material/mwc-menu":"0.26.0-canary.b9d35b69.0","@material/ripple":"=14.0.0-canary.c047f7c19.0","@material/rtl":"=14.0.0-canary.c047f7c19.0","@material/theme":"=14.0.0-canary.c047f7c19.0","@material/typography":"=14.0.0-canary.c047f7c19.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"8ee41fe865471367787d08d3f94d1800c5712d3b","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/8ee41fe865471367787d08d3f94d1800c5712d3b/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.b9d35b69.0","_nodeVersion":"14.18.2","_npmVersion":"lerna/3.22.1/node@v14.18.2+x64 (linux)","dist":{"integrity":"sha512-SgEvumuBGVFTs0zlRK/Y584rpHPQ+ZDP7JUvaHeYn6ATEbMgwziUdgeXrsehImu0MN33iJZOaikVvwgM89MWcQ==","shasum":"19a7b5a16e2b6842bc312646f70f32cb024a726e","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.b9d35b69.0.tgz","fileCount":45,"unpackedSize":232943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh1eMkCRA9TVsSAnZWagAAGasP+QGGoGlvW0Wxma5qBcFS\ngDnIL+yXo8PMiJSHnXh/dAaroT7meTf/fBBCfWIH8gHqBDhIzfKObNitAAPa\nO+IviE5fKsGpnMCCP5hKoqmyGL2s2lUGczZBtpZ1Ed7naf5RVhLFPWb6cANv\n07qAWG6mMeEBepIOBQdrog6+BOdditHEfk2sASjR4fJVbnurdzPa80EmHhUC\n/tPCBrYdIIQ2o1HXZiYCB4xUZwfYhG7+MAycVQoGKby9Wfx6L4qeGznZdYmF\nY51gS3nUAFEEE2yGgqtynmfVDoMsvf97up6KkW485mtHloyKaW5KV501G/8N\nqbbQOixAMbRJUQl3EpeKesT2xjf3raoRQcGaw8SC0Mm1jduwwDDA15k6ddhq\nFcrkYYaUskpWpHpTr20aLvYWVlsUSTMHeskCblocRxWIgddthUEfzn5EKbJu\n0kSMz41a2uVZF2XSbaQfZfcUKyzKMJD18PwejmTO5DOZK4XXlq4NjzMU2K6h\n6ck5Hmud6nbhNjq6aOo4FaPeHGFoou6SVAMtDfPq2gexcUvUtY3OnupNWqi/\nR5C3EUvOU2/OMgw94MzXRT7DxukQ+7/LOgNdldrwed9/9UEhKVV/ZIaZ53JD\n8Q2SbgJmHbCTycyNDKeS0G3zrkSejYrLWmgGojZuePEsuF5EtrGZtfz+ltQo\nnvPq\r\n=ZTQW\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC8Ow8st6bZ8gOl0LhL/sbTNn9EyM44H31JZ5/yqNpU7QIgXAcMP1SFVLjzFUqVFMnJ+MAgNC664bSo5ofB/4af/JU="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.b9d35b69.0_1641407268477_0.9489722561969471"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.2afff08e.0":{"name":"@material/mwc-list","version":"0.26.0-canary.2afff08e.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.05db65ec0.0","@material/dom":"=14.0.0-canary.05db65ec0.0","@material/list":"=14.0.0-canary.05db65ec0.0","@material/mwc-base":"0.26.0-canary.2afff08e.0","@material/mwc-checkbox":"0.26.0-canary.2afff08e.0","@material/mwc-radio":"0.26.0-canary.2afff08e.0","@material/mwc-ripple":"0.26.0-canary.2afff08e.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.05db65ec0.0","@material/feature-targeting":"=14.0.0-canary.05db65ec0.0","@material/mwc-icon":"0.26.0-canary.2afff08e.0","@material/mwc-menu":"0.26.0-canary.2afff08e.0","@material/ripple":"=14.0.0-canary.05db65ec0.0","@material/rtl":"=14.0.0-canary.05db65ec0.0","@material/theme":"=14.0.0-canary.05db65ec0.0","@material/typography":"=14.0.0-canary.05db65ec0.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"9bada09943cf93e3b0b697ef81fb87cc7b781379","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/9bada09943cf93e3b0b697ef81fb87cc7b781379/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.2afff08e.0","_nodeVersion":"14.18.2","_npmVersion":"lerna/3.22.1/node@v14.18.2+x64 (linux)","dist":{"integrity":"sha512-0KmGgNfQv8dJ0SGn8nA8N+zjQVoGDtQYK1mthNoBCSYR+CsDjez/5btKAAKGW7i3JSMYtouXjTSLDzw4IzgZ0A==","shasum":"14488466b28692c2b5392f248a7905cdfe623b46","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.2afff08e.0.tgz","fileCount":45,"unpackedSize":232943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh12viCRA9TVsSAnZWagAA+eUQAIwcgER5z9QolGAoJkRL\n9twMDdBuz7m1WAW3CfyIMY62HYX2PDiziCqhW8d8MBMQSSK1EdyClUICHYVO\ntqmVlLhm8pgYWpgYSAEun4oyv2h6NIroSrkzctfLJzeGuSCliDR011dhMBz6\no7b2dVzNRkuafGcZgPwUTK9SsVfclVoBljh56KKp11rCgvZEGqzn+tnOBuVO\n4qhT1sX5y+D6ht8pMx3dLNzgfx4wjseXMjzuk4seN2PNAUPQEuXrU2E07+Za\n0DwEJtXQHld0YhiH5mDIIhdx1rLL3h2BeAbxBCYB8AT5SlDWaJ6GFaMnmT9G\nwE2M3RwG1zorzxf541wvdESMOIvTCmcS44VgozkD2pKn1laUepPReeqY8U7O\nMbaBCJTktpQhBlCqe3Edz4SZQbLKpEOP29AmUKKcyDmA/JEZSBkqZcmLJh46\nCW5Bi8wQzE+8HRjSG73+vqO+4YXKGCn1fcj1WJr7OfMW118Zyx+VzZDdyhrv\nazZOYY/nYxB9qpGxdLqFM34yph/UmdzdXrAXwwFk2221oVLJDk5k6GxAraF4\nVEPNPkyuRL6oyViEPCSjSTYh1imOXtkHHtsCGwpOlJrNmAD56zfUMVecNDAQ\nF6N8QD1M7H6t11L4xq9vqtSeWW0kDUhS+KT9xbZWeRqO55yfLhJu+Cmb+UUX\nfhKR\r\n=M/Jn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH3SqXe4W9ON1/F4y/0DRp8qUrnDg4FusjNEfIJm742pAiEAweL57HVtMeojg/vGFLJn0Yg/VYRlumFQMtr4sTi7cjI="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.2afff08e.0_1641507810501_0.2769585676417392"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.893fc857.0":{"name":"@material/mwc-list","version":"0.26.0-canary.893fc857.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.6ca8b8f85.0","@material/dom":"=14.0.0-canary.6ca8b8f85.0","@material/list":"=14.0.0-canary.6ca8b8f85.0","@material/mwc-base":"0.26.0-canary.893fc857.0","@material/mwc-checkbox":"0.26.0-canary.893fc857.0","@material/mwc-radio":"0.26.0-canary.893fc857.0","@material/mwc-ripple":"0.26.0-canary.893fc857.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.6ca8b8f85.0","@material/feature-targeting":"=14.0.0-canary.6ca8b8f85.0","@material/mwc-icon":"0.26.0-canary.893fc857.0","@material/mwc-menu":"0.26.0-canary.893fc857.0","@material/ripple":"=14.0.0-canary.6ca8b8f85.0","@material/rtl":"=14.0.0-canary.6ca8b8f85.0","@material/theme":"=14.0.0-canary.6ca8b8f85.0","@material/typography":"=14.0.0-canary.6ca8b8f85.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"6cbd6b098ea6e47fddfd2a5875df6d41262b532d","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6cbd6b098ea6e47fddfd2a5875df6d41262b532d/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.893fc857.0","_nodeVersion":"14.18.2","_npmVersion":"lerna/3.22.1/node@v14.18.2+x64 (linux)","dist":{"integrity":"sha512-bthX0PJ/WiN5vBqUx3slbc/wQFQQRyeMtwZ/YUNqI7CpCXiutm7SDDOMkRwNCBY6Nquhn0npc0y8TwU/ExQFnA==","shasum":"ce2634478aa987843a77922754b005c3d4f7be93","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.893fc857.0.tgz","fileCount":45,"unpackedSize":232943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh2IxmCRA9TVsSAnZWagAAdc0P/jvBWDHzrl4vwv2IY2Md\nTkPxTFj1xxyA4SmI++nLfI9FGgNPZZJEQsC3eQaKetuPGIfXFgbntCzcXbKu\nquP1Ha+BKQ9sVIZVToUGPqPAo1EE7G0nytvuEM2Q6d/HFxX7lROR5OiZ+3WE\n1RhjTYf070+qgYHmayDbaHnm2dRSSFZpQkJm3oCDvvhRcQHUk2yNEGR8Pey3\nM7StmY53UvUS0nuhO00GjXZXXF1nVx5CoqaTVZYnGtkkZO9GS8d0X5TfQxNb\nwVD/nOCpo5tR2TALfreIcKcuGub8FkzNxAQddGsNk6ohNR0+Vc5uDbzyR1Wi\n/+Ra1fiJHI/K8IfTKOSJ1ZQmQfRtlCv5efZRI0rTwaav2xUgrI+3F81AV4qN\ni7a1oGe8nmFp/5GSS7o2VIiyyxvavWJS5bEyhai2A1frWDgAvrK017SgtyL1\nHIqYt7YNvkr8hBiIyeMdf+Z/qpp4rp4Fug0Guiqi0ek75Hf8en8CvBRtZIBc\nFKzkWn1e4eXfgx78WgNfpovdV+FXePqmDufDll94/e7DP9G46D5F1rmQYcMt\nrptvWioaGUBHEPp/0mbvZ3LAB/cig/4SyUtJ2gOSOS97eJnBtCs7BIBnpIL3\nc5I4Us6ewtoAIwMl84rJ7oKh2xLNQzFS9NWF91U/L32V3kDnT+Oof0KrNBET\nb/UJ\r\n=fQHp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICIp9BmUqTczJzW1HIy5U2HiYgar04TszrMTXMOR12o5AiBTVx9Yb8zBEeET2xzQsk2WnpFzxkbvzIxSZeZgER5N5g=="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.893fc857.0_1641581670658_0.43859913385324534"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.69ba13b7.0":{"name":"@material/mwc-list","version":"0.26.0-canary.69ba13b7.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.c14e977ee.0","@material/dom":"=14.0.0-canary.c14e977ee.0","@material/list":"=14.0.0-canary.c14e977ee.0","@material/mwc-base":"0.26.0-canary.69ba13b7.0","@material/mwc-checkbox":"0.26.0-canary.69ba13b7.0","@material/mwc-radio":"0.26.0-canary.69ba13b7.0","@material/mwc-ripple":"0.26.0-canary.69ba13b7.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.c14e977ee.0","@material/feature-targeting":"=14.0.0-canary.c14e977ee.0","@material/mwc-icon":"0.26.0-canary.69ba13b7.0","@material/mwc-menu":"0.26.0-canary.69ba13b7.0","@material/ripple":"=14.0.0-canary.c14e977ee.0","@material/rtl":"=14.0.0-canary.c14e977ee.0","@material/theme":"=14.0.0-canary.c14e977ee.0","@material/typography":"=14.0.0-canary.c14e977ee.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"776b813e379c8d90abf2a0ded57168c12f62adff","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/776b813e379c8d90abf2a0ded57168c12f62adff/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.69ba13b7.0","_nodeVersion":"14.18.3","_npmVersion":"lerna/3.22.1/node@v14.18.3+x64 (linux)","dist":{"integrity":"sha512-S2q9dNmqIvYeRVpW2IgctfRHHEEm/jefeVt2q/RC9Euy5J5X/Q3pmILdWxnNZVAzkniFialVmWM86VN+FVfe5Q==","shasum":"3d2e44dbf66db6e1a8f0f892772cbee35a598165","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.69ba13b7.0.tgz","fileCount":45,"unpackedSize":232943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJh6I+YCRA9TVsSAnZWagAARx4QAIXykZku97QLsPYWdUoC\n84xH18+Lwfj/TGtk+PHnyhOCxOlDkbI7LkVbw15/HUa80eZCDJIo3P84Q78X\ncpz1zpXdWtoA1ke8VbkUfeB1yV7m2onkIvPPLz9lp8Xuzkq+P2dp1zhvAC5b\nxVMLiXvRQVYTXavjMyeq56ueZE6C74Dau2bOMrwHlTLHz9BOHUVNCd6Ena4k\nER+YGLbxR+57Cj2YIRI6b7b288+dFwOqRVRhKzl769NNapZP+i+zuvmkA2tA\nqp0QRteKyPq69O6s33L9dqzXngkzkHFLtZan6xei21cb2nOcOFkJy7ASWJd2\n7k02pp3l5fDphenxjmCbcVWH+lbzBBUnmEg+j5nvLKk/YmPHj+GQaePXVu4J\nmkM32S3tdXm+IzpcKGAs6mmLMUhPxReYPq3Ttkxcw8ikqLRjAqxpyHHFCgxg\nPboJPQABJ24hYYUlO5zvODmZSPsmGmzhcx5d8zne7nD/wKQjjFdPfg8YTJ4R\n26DFTKOKkGy7MkT45C97zjHnoTc2icomyMBtEblvg9W0DiLEnph6P5cOuxzs\nvKJT67z1FectkoPZDdYZy1+dbIy9NBLd/I8Cosm/Ae2nkSShJr5rwWSVg42o\nAfc9KoT/g+TDRxF/tPtAEMGC8T2+YSkyQepsmiBmKa7PTaDHwJ0T+tTt2YoA\nLHak\r\n=N51J\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFdJeWjJUB5SQv5eXoFdD5u5iXihMcS43UwoN1yDxjBTAiEA8PGYKWQwNvKwn5CEIa2dQCeo7QvLxaCjhYCE7UDxbc8="}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.69ba13b7.0_1642631064608_0.13822442652208178"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0-canary.0af8ade5.0":{"name":"@material/mwc-list","version":"0.26.0-canary.0af8ade5.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.c14e977ee.0","@material/dom":"=14.0.0-canary.c14e977ee.0","@material/list":"=14.0.0-canary.c14e977ee.0","@material/mwc-base":"0.26.0-canary.0af8ade5.0","@material/mwc-checkbox":"0.26.0-canary.0af8ade5.0","@material/mwc-radio":"0.26.0-canary.0af8ade5.0","@material/mwc-ripple":"0.26.0-canary.0af8ade5.0","lit":"^2.0.0","tslib":"^2.0.1"},"devDependencies":{"@material/density":"=14.0.0-canary.c14e977ee.0","@material/feature-targeting":"=14.0.0-canary.c14e977ee.0","@material/mwc-icon":"0.26.0-canary.0af8ade5.0","@material/mwc-menu":"0.26.0-canary.0af8ade5.0","@material/ripple":"=14.0.0-canary.c14e977ee.0","@material/rtl":"=14.0.0-canary.c14e977ee.0","@material/theme":"=14.0.0-canary.c14e977ee.0","@material/typography":"=14.0.0-canary.c14e977ee.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"64bb121cb77aee6a854395ad838fce32a6051337","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-list/mwc-list-item.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n  import '@material/mwc-icon';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js';\n  import '@material/mwc-list/mwc-list.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/64bb121cb77aee6a854395ad838fce32a6051337/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list';\nimport {isEventMulti} from '@material/mwc-list';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","_id":"@material/mwc-list@0.26.0-canary.0af8ade5.0","_nodeVersion":"14.18.3","_npmVersion":"lerna/3.22.1/node@v14.18.3+x64 (linux)","dist":{"integrity":"sha512-1HkB1h1LDOFYupvpUKlKiQ19OhyjO3Y65+pDfBNAJ/Gpc+IzFaULRbHGRGgy3NDPQ43wvL/hc/0wox0M/pxtwA==","shasum":"8d4eb4b1387027ce169c8f383ae845c331d2f94c","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0-canary.0af8ade5.0.tgz","fileCount":45,"unpackedSize":232943,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJiAZe5CRA9TVsSAnZWagAAA10P/3L2bG1dLHAA3aLPsQ/H\nNN79JyiTFUiUVIlT69vV7l6C1RkTwWWahAVBHF10Qg2aEy/WDW7JeKp2x40/\nzF8KeV9dbr+JFEgbsCWE9pWiAp4bh6rM0W33FnfAILrOXOQg82kSBlfHqZVr\nYysT0o3B4084Pmd2GncC58Xq8r/BC7O2Nxku9FIxk7U0R/JNFs4gUOJRPxk9\n2fiNbSKEPDOEpjrb2TVQhS9ZN7NBkfLiouV/FrRaoQ9TM4nKRQdOGTzdw6iS\nZV6/BcKuU5bQJP1qPBJURkQDK6iNdVyl0vvUaLBmH3VAUOjKWr6t+Z59dG7e\nWdRIzyjuBS47UjAyvm7PKohNEroBaa+1f4kX4xk06sKX1JhWzx0p/qQwZr5w\nJ/l+O90pdVcmwNfViCpm+hIEjVgOlstEtdYeGM94BdUnUfhMDm1zB1zHYdkT\n88Qe+Oi8moXqCnwn+PIfP8jFxxaSXOWrROVbi/b+nCYLLB3eeFgx3k88YimB\nTg+IxQkj6WACJDtAZsXwzg735lEycr5dW51UGeSa1UKrrXzEd/9nvpmA24PT\n/x2qwKFu16GxBUDMwwF2SHeg9JFdWSxVbv9+iyWZLic8F+gNWHB2gfq0xQh8\n4ZHwvpJLjWEz470btL1ins26AGFeY8zlHR7H/J5PtIFONFBBKNTS38oeOwXx\nx306\r\n=5lys\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC//ZzCNYHYsplPfU/513bC4JS4wY5bWzlbS1NjrYzYLwIhAJZuv5VL4dynVmTXeYRB6k/E6zmEiN0YVFJHC8sj8h3z"}]},"_npmUser":{"name":"material-admin","email":"aprigogin+npm@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0-canary.0af8ade5.0_1644271545713_0.7898178662118995"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.0":{"name":"@material/mwc-list","version":"0.26.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0","@material/dom":"=14.0.0","@material/list":"=14.0.0","@material/mwc-base":"^0.26.0","@material/mwc-checkbox":"^0.26.0","@material/mwc-radio":"^0.26.0","@material/mwc-ripple":"^0.26.0","lit":"^2.0.0","tslib":"^2.0.1"},"repository":{"type":"git","url":"git+https://github.com/material-components/material-web.git","directory":"packages/list"},"devDependencies":{"@material/density":"=14.0.0","@material/feature-targeting":"=14.0.0","@material/mwc-icon":"^0.26.0","@material/mwc-menu":"^0.26.0","@material/ripple":"=14.0.0","@material/rtl":"=14.0.0","@material/theme":"=14.0.0","@material/typography":"=14.0.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"056b3ceffbe2fe3408dbdbb319932da85637e779","bugs":{"url":"https://github.com/material-components/material-web/issues"},"homepage":"https://github.com/material-components/material-web#readme","_id":"@material/mwc-list@0.26.0","_nodeVersion":"16.14.2","_npmVersion":"lerna/3.22.1/node@v16.14.2+x64 (darwin)","dist":{"integrity":"sha512-9+wwnqOiJqv98GmubPVI54cL5P/D986HkH7odA4fXtGmlVDOX1kO82SH2jksO+1y/4CfM14VrSKN9b0NIelnWQ==","shasum":"f50b254fb96c6ea9523368592e7437db612a0c8f","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.0.tgz","fileCount":45,"unpackedSize":232719,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCZEtxRz6LLaGMEfPyIcvYH1F1IkWoMxJzUjn9sfQLu4QIgbKAZNs7ApWkBWxYAnTW/wWzPv50cF4Mwzs7+Miu9hJI="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJicWa/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqllA/+MptWgiyAXmXDcDepbGEUwPMhEsOsJbSwt7j+5ovc2nI1waVt\r\nfFjHi+GOc/SanlIwm7g38p0/3nFcjyV423OaSBug9zJamUHTI9cDVBlDLz7l\r\nJHZ7daW41crQ009DTEmgNHehMKc0qsZx7+A0P0tI3x4J7t0JVODYcZjEO9RS\r\ngGUvzeo12spfqHxE/Emkllk4sWf7mOBmHW3UQwEHdY3CpSIlMpfGN+0UC/9r\r\nAE5kktRYyZ347aSP/DioO4s1YZvyClkpvj5kQ6mBUwE7XXGjipvJ3kW27GnE\r\n2PqlLQMrpn9oxfPU+npqT1MHOZod2jCZyteV8T1eVnhs8g4YTyez2zNl+oEw\r\nRpNz5Y8+veJXXoaKycuiXfJPGG/k/eJnYnLQS+KAu656HVMSZt2DzCnox3BU\r\nXT5aRjR1vI6ovr4vuOL4490CXDeSTNDhILSd8mrisNM/PquVVQzQUPGACxhL\r\n+YRXQfdG1n5GdGbWhtknuZzCPWwr8ORBNkr/5+x2gGQ5idiPlr5kkWx4tKT+\r\neA0qFvG+SUznv7HRNor2fsNGqd/1ikHJL0wTi/hSaJoPgM1yPqVvjaR/09o4\r\n/s/imMxDTYlDbyD6gBGuMRE1rvlxUuYlfvvP2ePfMxaFW3AV8IvX024v8kp7\r\nkc14S4vcBAS6rr6vMKBdQXf7AyIGUqCbOpM=\r\n=wJOH\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"asyncliz","email":"asyncliz@gmail.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.0_1651599039013_0.1621691592926422"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.26.1":{"name":"@material/mwc-list","version":"0.26.1","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.53b3cad2f.0","@material/dom":"=14.0.0-canary.53b3cad2f.0","@material/list":"=14.0.0-canary.53b3cad2f.0","@material/mwc-base":"^0.26.1","@material/mwc-checkbox":"^0.26.1","@material/mwc-radio":"^0.26.1","@material/mwc-ripple":"^0.26.1","lit":"^2.0.0","tslib":"^2.0.1"},"repository":{"type":"git","url":"git+https://github.com/material-components/material-web.git","directory":"packages/list"},"devDependencies":{"@material/density":"=14.0.0-canary.53b3cad2f.0","@material/feature-targeting":"=14.0.0-canary.53b3cad2f.0","@material/mwc-icon":"^0.26.1","@material/mwc-menu":"^0.26.1","@material/ripple":"=14.0.0-canary.53b3cad2f.0","@material/rtl":"=14.0.0-canary.53b3cad2f.0","@material/theme":"=14.0.0-canary.53b3cad2f.0","@material/typography":"=14.0.0-canary.53b3cad2f.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"06b516b7f91867acd0cbe5676767aea8f490cbee","bugs":{"url":"https://github.com/material-components/material-web/issues"},"homepage":"https://github.com/material-components/material-web#readme","_id":"@material/mwc-list@0.26.1","_nodeVersion":"16.14.2","_npmVersion":"lerna/3.22.1/node@v16.14.2+x64 (darwin)","dist":{"integrity":"sha512-1jYG0/VCJhUjjJQSDvjvMiTryOtKk5TEzpkTO/kguhdN9j6vk0XU/p/LhnyxV0+fQei754AO3Tos5Dv0FvEUOQ==","shasum":"51aaf759244a7dd0f5bc4ec58a4f95aad224fede","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.26.1.tgz","fileCount":45,"unpackedSize":233407,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDmeIHhB2lJC5PzBsOx45nbb7mV7JeV9WoKkhhEOr8taQIhANCxLknsdVfVzZYMj6kmCuuxaN1LOAmDphEY0VT2SuW6"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJieXo+ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmridg/+IpycJk1OiXrwWGzGRQ8aSAWmTilS5yKol3uBaV2LcMeKn/LW\r\nk7aHAacsd8xbtqq25paGfbgPU4fKDezrGmGwnu4Sm7C6V8HqszK+MBD+9/CE\r\nhTKuh0CepphfFv6fKmOjRJ/gJeQMdwFt2gQbKd5rkaxq6JnVMuYkF+lh/rd+\r\nLo54zKdtJ3A83Rp/kpgf4hvyFFdvuidyGVz6XHfWgWQVcZ6IcTCRLnABhhJI\r\ncthKza8oFZaOibLnV9+vknosuhOBPRSc/H2nCylG+Q3nZp840Pl9RbkbvN2U\r\n0f5MmXM6jksxyj2Ti3IJIrnQ1REFSm2+jcjVvLgJbqEwyhRoFcAWVmUAadAS\r\nZRM9aHseFcTFI8P491R12j+X+HpMkrEg7mmiC3n2vcPkFuY67OV4Q68FM466\r\nW70LGUDgjJ6+FI7Y9MuGLuoIRsxmKexjUp2rMbKkuv7TOoIRv45KLic0BLVt\r\nSXRFdalNa4F+KQ7MI/+Q79s0R8TLRIvbKjVaF7Z2JRYAFhuplkDxSLAhX2KX\r\nqk802/HLNf6yF8qaNNBbYcl3jTuvLL775P2hNRwmKQTC1gfvrAo9xZDnRYTH\r\niGqREHdpngFjorLrLldXxiDQq1hochc1L95VffiGgwqPqpbDUaPhUsZTCIYn\r\nDARK2au6vexE8G4Z9YvgjJZOZo9jJlc7ppw=\r\n=dIz+\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"asyncliz","email":"asyncliz@gmail.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.26.1_1652128318157_0.7127712861412188"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"},"0.27.0":{"name":"@material/mwc-list","version":"0.27.0","description":"Material Design list web component","keywords":["material design","web components","list"],"main":"mwc-list.js","module":"mwc-list.js","license":"Apache-2.0","dependencies":{"@material/base":"=14.0.0-canary.53b3cad2f.0","@material/dom":"=14.0.0-canary.53b3cad2f.0","@material/list":"=14.0.0-canary.53b3cad2f.0","@material/mwc-base":"^0.27.0","@material/mwc-checkbox":"^0.27.0","@material/mwc-radio":"^0.27.0","@material/mwc-ripple":"^0.27.0","lit":"^2.0.0","tslib":"^2.0.1"},"repository":{"type":"git","url":"git+https://github.com/material-components/material-web.git","directory":"packages/list"},"devDependencies":{"@material/density":"=14.0.0-canary.53b3cad2f.0","@material/feature-targeting":"=14.0.0-canary.53b3cad2f.0","@material/mwc-icon":"^0.27.0","@material/mwc-menu":"^0.27.0","@material/ripple":"=14.0.0-canary.53b3cad2f.0","@material/rtl":"=14.0.0-canary.53b3cad2f.0","@material/theme":"=14.0.0-canary.53b3cad2f.0","@material/typography":"=14.0.0-canary.53b3cad2f.0"},"scripts":{"build:style":"node ../../scripts/sass-to-lit-css/index.js mwc-list.scss mwc-list-item.scss mwc-control-list-item.scss"},"publishConfig":{"access":"public"},"gitHead":"c1e876a15bc028034781984538ea803ba67dbed3","bugs":{"url":"https://github.com/material-components/material-web/issues"},"homepage":"https://github.com/material-components/material-web#readme","_id":"@material/mwc-list@0.27.0","_nodeVersion":"18.6.0","_npmVersion":"lerna/3.22.1/node@v18.6.0+arm64 (darwin)","dist":{"integrity":"sha512-oAhNQsBuAOgF3ENOIY8PeWjXsl35HoYaUkl0ixBQk8jJP2HIEf+MdbS5688y/UXxFbSjr0m//LfwR5gauEashg==","shasum":"4871a4dc9d6b7dae38ad509f9d5973e293cbc1f3","tarball":"https://registry.npmjs.org/@material/mwc-list/-/mwc-list-0.27.0.tgz","fileCount":45,"unpackedSize":233407,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDDEY9wQHMKzc/rROtgzxYI2P4ygBmL++/yeowovQIn/wIhAPyhyiK5+C+SWGApiYVJWG94jOQt4IxJHfK27wL38viB"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi9qYPACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoSNw//ZTHdkKHeaFokSPyRnGch7wDmLaEQMop/mL/1R4S1mRy+vynJ\r\nAePUnnQIbYPrtTmXnCNkc9agyrVVqkg+HJ8tacutehaLPSeZtDWN2UFq1oCw\r\nA2h/njjeaT3NAs0cmtOYqLevVsT9X65a0unlHeCTghPsjpBXF6LvzuMq6nlp\r\nszaVJY1gLAyWOL6zGW0kHgtFxUA7XxFdLMWNSsZ+9zVtExEM/4ro4aByWEfS\r\nUOSBxPFAQfPEmyneagdZEG3QlV9R3UlWLEo7azu/PfzdkXlbuUhe0XlS31CM\r\n9agKK9dulr/cI24u77tZxYFt1xie3DUV3KZk0V4VlG4ZsK1JkFwZGEQfAm++\r\nt6S2P/Avf1RlFkb9RrUwpjtE37rb1WddQuygzuHTSGXLV2VmqT7LoDKIRzcU\r\nAGBn14bhQdpqmx/DtVs2FIdHXgxIaI3JnJUNN1YA875qUAgWZPqxlLRPLKY3\r\ntLymv7QDrDoTxT0C6fE1annuWZOeoC/jkdfKXQlNdQU7cuBhEqzQFoXqxu0f\r\nYkiTO0js9PVGwhtkIIeDGylEQpJ/4KY5SnQm6CvS/UYNLJk9W3wpohvf1a2p\r\nzB2PV4Qnk8EZ19Rm855HA64a1zMbrPP75/IxvKU/g0Q5pK+KarZYMIa67Q/G\r\nUs8zntbDcl/e1ffWmJ9kYcdON1hRSx+8jHU=\r\n=quyl\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"emarquez","email":"emarquez@google.com"},"directories":{},"maintainers":[{"name":"yefim","email":"hi@yef.im"},{"name":"abhiomkar","email":"abhiomkar@gmail.com"},{"name":"azakus","email":"dfreedm2@gmail.com"},{"name":"bicknellr","email":"bicknellr@gmail.com"},{"name":"material-admin","email":"aprigogin+npm@google.com"},{"name":"aprigogin","email":"andrey.prigogin@gmail.com"},{"name":"patrickrodee","email":"prodee@google.com"},{"name":"aomarks","email":"aomarks@gmail.com"},{"name":"emarquez","email":"emarquez@google.com"},{"name":"allanchen","email":"allanchen@google.com"},{"name":"esgonzalez","email":"esgonzalez@google.com"},{"name":"asyncliz","email":"asyncliz@gmail.com"},{"name":"candysonya","email":"wangchan518@gmail.com"},{"name":"ssuarez","email":"sayrisuarez@google.com"},{"name":"taylorv","email":"brian.t.vann@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/mwc-list_0.27.0_1660331534681_0.5768580092660656"},"_hasShrinkwrap":false,"deprecated":"MWC beta is longer supported. Please upgrade to @material/web"}},"time":{"created":"2020-02-04T04:46:44.063Z","0.13.0":"2020-02-04T04:46:44.574Z","modified":"2024-04-04T18:51:50.893Z","0.14.0-canary.f790f713.0":"2020-02-28T02:28:44.930Z","0.14.0-canary.c759cfbc.0":"2020-02-29T00:05:19.425Z","0.14.0-canary.97ef53d8.0":"2020-02-29T00:18:42.074Z","0.14.0-canary.24f5fa6e.0":"2020-02-29T01:09:08.361Z","0.14.0-canary.960e214f.0":"2020-02-29T03:09:27.649Z","0.14.0-canary.a2f046f5.0":"2020-03-03T00:57:03.850Z","0.14.0-canary.024f371a.0":"2020-03-03T01:29:19.374Z","0.14.0-canary.2f164110.0":"2020-03-03T21:34:10.038Z","0.14.0-canary.edd465cd.0":"2020-03-04T00:11:07.212Z","0.14.0-canary.2b02d017.0":"2020-03-04T20:19:35.576Z","0.14.0-canary.cbdfe453.0":"2020-03-04T21:44:58.428Z","0.14.0-canary.02aa8a98.0":"2020-03-06T22:53:47.491Z","0.14.0-canary.7cd5aad6.0":"2020-03-09T23:20:37.203Z","0.14.0-canary.3a79dfa6.0":"2020-03-10T02:56:38.954Z","0.14.0-canary.22e0f5c9.0":"2020-03-10T03:00:39.057Z","0.14.0-canary.f23a1d1b.0":"2020-03-10T20:56:56.526Z","0.14.0-canary.34b2d69a.0":"2020-03-10T21:15:08.958Z","0.14.0-canary.dc04abe1.0":"2020-03-10T22:02:42.241Z","0.14.0-canary.04ccbc88.0":"2020-03-11T00:35:15.621Z","0.14.0-canary.55338c25.0":"2020-03-11T06:31:53.551Z","0.14.0-canary.b7e388f3.0":"2020-03-11T20:20:08.100Z","0.14.0-canary.b3211481.0":"2020-03-11T20:24:20.760Z","0.14.0-canary.0b5c7f23.0":"2020-03-11T21:54:13.940Z","0.14.0-canary.6c0f0b27.0":"2020-03-12T21:17:35.587Z","0.14.0-canary.b6c53425.0":"2020-03-13T16:55:41.955Z","0.14.0-canary.306cabed.0":"2020-03-17T21:18:05.020Z","0.14.0-canary.4e250cbc.0":"2020-03-17T21:24:13.897Z","0.14.0-canary.ff82d9ec.0":"2020-03-18T18:20:04.622Z","0.14.0-canary.f50f48ef.0":"2020-03-19T18:55:46.013Z","0.14.0-canary.134cf877.0":"2020-03-19T20:39:36.922Z","0.14.0":"2020-03-19T21:28:48.809Z","0.15.0-canary.2c1a4913.0":"2020-03-19T23:01:14.149Z","0.15.0-canary.3a6e481a.0":"2020-03-20T18:13:35.012Z","0.15.0-canary.603d6eb3.0":"2020-03-20T21:36:15.227Z","0.15.0-canary.05c6a93c.0":"2020-03-23T16:36:50.506Z","0.14.1":"2020-03-23T17:57:41.888Z","0.15.0-canary.4e6be3f4.0":"2020-03-24T20:59:12.769Z","0.15.0-canary.c29a683d.0":"2020-03-24T21:16:57.453Z","0.15.0-canary.fca3dd9d.0":"2020-03-24T23:43:29.021Z","0.15.0-canary.1e73da49.0":"2020-03-25T21:30:20.321Z","0.15.0-canary.bb6dfc5a.0":"2020-03-27T01:23:26.911Z","0.15.0-canary.1884603d.0":"2020-03-27T19:55:52.342Z","0.15.0-canary.aff73cab.0":"2020-03-27T21:14:37.622Z","0.15.0-canary.63168f61.0":"2020-03-31T18:12:47.261Z","0.15.0-canary.9fb79b3e.0":"2020-03-31T21:20:38.172Z","0.15.0-canary.9bd3e9e2.0":"2020-04-01T00:16:26.840Z","0.15.0-canary.072084ab.0":"2020-04-01T18:40:15.426Z","0.15.0-canary.4dec04af.0":"2020-04-03T20:30:08.947Z","0.15.0-canary.9b676354.0":"2020-04-03T20:30:28.972Z","0.15.0-canary.6b946095.0":"2020-04-03T21:24:29.853Z","0.15.0-canary.5ccbfaa2.0":"2020-04-03T21:30:05.426Z","0.15.0-canary.a0ab8772.0":"2020-04-07T20:09:12.222Z","0.15.0-canary.8d352305.0":"2020-04-07T21:42:27.000Z","0.15.0-canary.31eac79f.0":"2020-04-07T21:57:44.881Z","0.15.0-canary.ba05565e.0":"2020-04-08T17:32:54.421Z","0.15.0-canary.25099f79.0":"2020-04-08T21:30:59.431Z","0.15.0-canary.447e31c6.0":"2020-04-09T01:16:53.906Z","0.15.0-canary.d6dd84f7.0":"2020-04-09T01:25:29.692Z","0.15.0-canary.9b03ee68.0":"2020-04-09T20:03:12.825Z","0.15.0-canary.bbc25b10.0":"2020-04-10T22:46:02.388Z","0.15.0-canary.339cbfd4.0":"2020-04-15T17:39:01.154Z","0.15.0-canary.b74ff19f.0":"2020-04-15T20:04:42.840Z","0.15.0-canary.aaa16853.0":"2020-04-15T22:41:21.818Z","0.15.0-canary.826b23e7.0":"2020-04-16T18:57:31.450Z","0.15.0-canary.e1ad2b2f.0":"2020-04-17T23:01:50.485Z","0.15.0-canary.bade5580.0":"2020-04-17T23:19:36.345Z","0.15.0-canary.dae38247.0":"2020-04-18T00:16:30.309Z","0.15.0-canary.a04c0b82.0":"2020-04-18T00:34:39.523Z","0.15.0-canary.715decfe.0":"2020-04-20T18:35:49.369Z","0.15.0-canary.c862cd04.0":"2020-04-20T21:34:28.634Z","0.15.0-canary.e9b01b35.0":"2020-04-20T23:29:45.850Z","0.15.0-canary.ee7e8989.0":"2020-04-21T00:51:39.064Z","0.15.0-canary.9bf47ffa.0":"2020-04-21T18:38:38.376Z","0.15.0-canary.078dbd98.0":"2020-04-21T21:12:41.082Z","0.15.0-canary.953015d6.0":"2020-04-21T21:36:03.204Z","0.15.0-canary.c360ec63.0":"2020-04-21T21:59:17.410Z","0.15.0-canary.d71b65aa.0":"2020-04-21T22:38:02.852Z","0.15.0-canary.58d51135.0":"2020-04-23T00:45:11.904Z","0.15.0-canary.d0af8ba3.0":"2020-04-23T18:10:19.599Z","0.15.0-canary.8872b17b.0":"2020-04-23T20:41:22.717Z","0.15.0-canary.eca1a610.0":"2020-04-23T21:43:24.246Z","0.15.0-canary.baaf529e.0":"2020-04-23T22:44:43.431Z","0.15.0-canary.7a7992a8.0":"2020-04-23T23:14:43.199Z","0.15.0-canary.1150d64d.0":"2020-04-24T00:18:58.789Z","0.15.0-canary.dad3f828.0":"2020-04-25T00:43:05.705Z","0.15.0-canary.1bcdb47e.0":"2020-04-28T01:13:00.979Z","0.15.0-canary.86ff1b9f.0":"2020-04-28T02:56:05.086Z","0.15.0-canary.54a86b20.0":"2020-04-28T03:18:24.389Z","0.15.0-canary.938fd24b.0":"2020-04-30T01:27:35.056Z","0.15.0-canary.39e9a008.0":"2020-04-30T02:13:51.505Z","0.15.0-canary.f3b365de.0":"2020-04-30T08:27:42.887Z","0.15.0-canary.cdbdf807.0":"2020-05-01T00:15:10.370Z","0.15.0-canary.9995ae17.0":"2020-05-01T18:45:28.645Z","0.15.0-canary.457bf035.0":"2020-05-01T20:51:12.702Z","0.15.0-canary.2381fd02.0":"2020-05-01T21:26:00.832Z","0.15.0-canary.b2ca9b57.0":"2020-05-01T21:36:31.905Z","0.15.0-canary.b2b088e7.0":"2020-05-01T22:34:01.928Z","0.15.0-canary.fdd8f69e.0":"2020-05-02T00:16:52.603Z","0.15.0-canary.730f45a8.0":"2020-05-03T20:45:16.152Z","0.15.0-canary.4219bd20.0":"2020-05-04T23:32:31.697Z","0.15.0-canary.1d83cf6d.0":"2020-05-05T17:12:29.563Z","0.15.0-canary.3bfc63aa.0":"2020-05-05T18:14:09.460Z","0.15.0":"2020-05-05T22:36:23.005Z","0.16.0-canary.1f4e3d1c.0":"2020-05-06T22:04:49.189Z","0.16.0-canary.bc8759d5.0":"2020-05-07T23:15:05.836Z","0.16.0-canary.d1379acf.0":"2020-05-08T17:41:34.256Z","0.16.0-canary.58d51fc0.0":"2020-05-08T19:17:54.552Z","0.16.0-canary.588062d7.0":"2020-05-08T21:24:09.295Z","0.16.0-canary.fa21f639.0":"2020-05-11T17:30:27.842Z","0.16.0-canary.2772c509.0":"2020-05-11T18:37:02.451Z","0.16.0-canary.fc4796d5.0":"2020-05-11T20:05:48.334Z","0.16.0-canary.0d1c5f2c.0":"2020-05-11T21:20:11.112Z","0.16.0-canary.d083d93a.0":"2020-05-12T00:18:36.413Z","0.16.0-canary.c95d429c.0":"2020-05-12T21:37:19.578Z","0.16.0-canary.0c1ad726.0":"2020-05-13T00:34:39.252Z","0.16.0-canary.8b6a4700.0":"2020-05-13T17:19:50.527Z","0.16.0-canary.3270effb.0":"2020-05-13T21:24:59.079Z","0.16.0-canary.832e64f7.0":"2020-05-14T00:52:32.770Z","0.16.0-canary.472fc4fc.0":"2020-05-14T03:36:41.380Z","0.16.0-canary.4dcd7dd5.0":"2020-05-14T16:25:29.291Z","0.16.0-canary.bcd3400d.0":"2020-05-15T22:50:13.875Z","0.16.0-canary.91f63179.0":"2020-05-16T00:34:54.132Z","0.16.0-canary.b8aafb56.0":"2020-05-18T18:32:02.944Z","0.16.0-canary.a564b194.0":"2020-05-18T23:03:56.131Z","0.16.0-canary.ef56465b.0":"2020-05-19T03:48:15.322Z","0.16.0-canary.c22dcd71.0":"2020-05-19T17:24:43.488Z","0.16.0-canary.6eb62388.0":"2020-05-19T20:38:44.626Z","0.16.0-canary.9bc3230c.0":"2020-05-19T21:39:13.692Z","0.16.0-canary.421a6856.0":"2020-05-20T05:24:35.429Z","0.16.0-canary.761aa6f2.0":"2020-05-20T21:31:26.000Z","0.16.0-canary.f8654c40.0":"2020-05-20T21:40:44.393Z","0.16.0-canary.05f3853e.0":"2020-05-21T17:33:36.869Z","0.16.0-canary.5fe61f4e.0":"2020-05-21T23:08:03.169Z","0.16.0-canary.17d33745.0":"2020-05-26T16:14:12.330Z","0.16.0-canary.e8b52f5b.0":"2020-05-26T18:43:13.080Z","0.16.0-canary.09afa0a9.0":"2020-05-26T21:44:29.592Z","0.16.0-canary.58bc9166.0":"2020-05-27T00:30:41.405Z","0.16.0-canary.43bde144.0":"2020-05-27T18:29:35.288Z","0.16.0-canary.51067bbc.0":"2020-05-27T20:03:33.490Z","0.16.0-canary.92751ffa.0":"2020-05-27T21:36:52.699Z","0.16.0-canary.aa2b40bb.0":"2020-05-28T19:15:23.150Z","0.16.0-canary.1a870a01.0":"2020-05-28T21:18:57.789Z","0.16.0-canary.ad57d086.0":"2020-05-29T23:49:31.393Z","0.16.0-canary.3bf2b4d5.0":"2020-05-30T00:37:04.669Z","0.16.0-canary.ac05f090.0":"2020-05-30T02:50:09.757Z","0.16.0-canary.0ba7b095.0":"2020-05-30T02:56:50.380Z","0.16.0-canary.5eaa9bac.0":"2020-06-01T23:29:16.339Z","0.16.0-canary.5677ac20.0":"2020-06-01T23:57:38.313Z","0.16.0-canary.7ac6bff4.0":"2020-06-02T00:15:59.307Z","0.16.0-canary.d45622aa.0":"2020-06-02T23:46:16.232Z","0.16.0-canary.dc26c709.0":"2020-06-05T20:21:21.378Z","0.16.0-canary.b9baf6db.0":"2020-06-05T20:22:46.023Z","0.16.0-canary.e0b8c9d0.0":"2020-06-05T23:05:16.648Z","0.16.0-canary.51552859.0":"2020-06-10T00:08:30.675Z","0.16.0-canary.2e269285.0":"2020-06-10T01:36:02.229Z","0.16.0-canary.be138b01.0":"2020-06-10T20:49:30.313Z","0.16.0-canary.04bccf5a.0":"2020-06-16T00:59:08.481Z","0.16.0-canary.b44dea36.0":"2020-06-16T20:58:12.617Z","0.16.0-canary.e2577e87.0":"2020-06-16T21:09:01.837Z","0.16.0-canary.58b73343.0":"2020-06-16T21:24:01.668Z","0.16.0-canary.f155c058.0":"2020-06-18T18:08:11.075Z","0.16.0-canary.309779d2.0":"2020-06-18T23:58:58.986Z","0.16.0-canary.e7649968.0":"2020-06-19T21:41:05.049Z","0.16.0-canary.8e21c78b.0":"2020-06-22T10:38:06.034Z","0.16.0-canary.6db76faf.0":"2020-06-22T21:13:04.128Z","0.16.0-canary.c4dd9684.0":"2020-06-23T15:15:32.228Z","0.16.0-canary.b3e53981.0":"2020-06-24T00:39:39.115Z","0.16.0-canary.b9468f77.0":"2020-06-24T21:54:45.820Z","0.16.0-canary.eb790e49.0":"2020-06-25T21:19:16.178Z","0.16.0-canary.9aa1a5c5.0":"2020-06-26T17:05:37.772Z","0.16.0-canary.d36e9861.0":"2020-06-26T17:36:41.995Z","0.16.0-canary.155c2f85.0":"2020-06-26T23:30:30.246Z","0.16.0-canary.340c9c40.0":"2020-06-26T23:38:38.328Z","0.16.0-canary.a3384d2d.0":"2020-06-30T21:00:47.860Z","0.17.0-canary.6d056c96.0":"2020-06-30T21:10:08.559Z","0.16.1":"2020-06-30T21:15:00.682Z","0.17.0-canary.f7e37607.0":"2020-06-30T21:44:30.686Z","0.17.0":"2020-07-01T19:44:29.012Z","0.18.0-canary.0afbfef2.0":"2020-07-01T19:44:54.136Z","0.18.0-canary.fd970958.0":"2020-07-01T23:33:50.749Z","0.18.0-canary.fd44be19.0":"2020-07-02T05:48:53.040Z","0.17.2":"2020-07-02T05:58:30.727Z","0.18.0-canary.ca6fc6de.0":"2020-07-02T05:59:44.081Z","0.18.0-canary.79f1ec2a.0":"2020-07-07T17:33:00.425Z","0.18.0-canary.a7bc45ae.0":"2020-07-09T17:23:39.841Z","0.18.0-canary.b184bc1c.0":"2020-07-09T17:32:49.903Z","0.18.0-canary.b39fde62.0":"2020-07-09T17:38:04.452Z","0.18.0-canary.dfdd8d6c.0":"2020-07-09T18:26:10.402Z","0.18.0-canary.11cf2694.0":"2020-07-09T20:43:53.730Z","0.18.0-canary.436d66e9.0":"2020-07-09T20:48:42.450Z","0.18.0-canary.3a44d36b.0":"2020-07-10T00:37:43.657Z","0.18.0-canary.ec11ae6e.0":"2020-07-10T17:53:28.774Z","0.18.0-canary.17f6cf27.0":"2020-07-10T18:33:10.216Z","0.18.0-canary.efdfbc21.0":"2020-07-10T18:44:59.306Z","0.18.0-canary.bae4339a.0":"2020-07-14T16:42:21.676Z","0.18.0-canary.28eac13b.0":"2020-07-14T22:23:48.812Z","0.18.0-canary.44966b65.0":"2020-07-15T18:05:21.667Z","0.18.0-canary.3ef0ef60.0":"2020-07-16T16:55:09.994Z","0.18.0-canary.fcebf9e6.0":"2020-07-20T18:46:25.481Z","0.18.0-canary.b6a772df.0":"2020-07-20T22:46:58.625Z","0.18.0-canary.f6a6ca38.0":"2020-07-21T16:41:16.296Z","0.18.0-canary.647dd6b7.0":"2020-07-21T18:44:33.228Z","0.18.0-canary.3cb7406f.0":"2020-07-22T18:57:54.058Z","0.18.0-canary.5717a5a1.0":"2020-07-22T21:40:15.805Z","0.18.0-canary.d84cd4b2.0":"2020-07-22T21:42:18.955Z","0.18.0-canary.f279e7fc.0":"2020-07-22T22:01:05.033Z","0.18.0-canary.f181e3bc.0":"2020-07-22T22:03:04.532Z","0.18.0-canary.346a622a.0":"2020-07-22T23:40:21.008Z","0.18.0-canary.c9e8a848.0":"2020-07-23T01:10:47.680Z","0.18.0-canary.718c385c.0":"2020-07-23T20:06:52.489Z","0.18.0-canary.cd516a27.0":"2020-07-24T19:11:13.932Z","0.18.0-canary.1f082191.0":"2020-07-24T19:16:33.886Z","0.18.0-canary.ea3e82dc.0":"2020-07-24T19:21:45.672Z","0.18.0-canary.94987b64.0":"2020-07-24T20:26:54.687Z","0.18.0-canary.ff49b7e2.0":"2020-07-27T19:05:14.723Z","0.18.0-canary.3d334ccc.0":"2020-07-28T16:15:37.976Z","0.18.0-canary.82ac569e.0":"2020-07-28T18:42:49.142Z","0.18.0-canary.99df7397.0":"2020-07-29T02:40:58.384Z","0.18.0-canary.45493e05.0":"2020-07-29T17:17:01.064Z","0.18.0-canary.f2ab0a95.0":"2020-07-29T17:21:53.631Z","0.18.0-canary.45f9eddc.0":"2020-07-30T00:55:14.586Z","0.18.0-canary.b64663ea.0":"2020-07-30T17:43:36.272Z","0.18.0-canary.9a1a4d2d.0":"2020-07-30T21:04:43.402Z","0.18.0-canary.887c2848.0":"2020-07-30T22:06:01.765Z","0.18.0-canary.354eb695.0":"2020-07-30T23:58:17.680Z","0.18.0-canary.7beb236c.0":"2020-07-31T17:40:57.353Z","0.18.0-canary.c44acc0c.0":"2020-07-31T21:11:36.300Z","0.18.0-canary.779853ff.0":"2020-08-03T17:24:07.304Z","0.18.0-canary.8aaf270b.0":"2020-08-03T18:41:12.998Z","0.18.0-canary.5cde9f12.0":"2020-08-03T19:01:39.709Z","0.18.0-canary.1607ec53.0":"2020-08-03T19:47:13.585Z","0.18.0-canary.678b30e3.0":"2020-08-03T19:51:04.781Z","0.18.0-canary.21c55569.0":"2020-08-03T19:57:16.962Z","0.19.0-canary.907d4d7d.0":"2020-08-03T21:22:53.876Z","0.18.0":"2020-08-03T21:24:41.785Z","0.19.0-canary.f7958e4a.0":"2020-08-04T02:07:20.256Z","0.19.0-canary.f8ceaf79.0":"2020-08-04T19:18:36.024Z","0.19.0-canary.6b9e385a.0":"2020-08-04T21:30:17.668Z","0.19.0-canary.9a7e6d2a.0":"2020-08-05T03:46:26.623Z","0.19.0-canary.188f3f1c.0":"2020-08-05T18:13:53.221Z","0.19.0-canary.b6106add.0":"2020-08-05T20:49:52.983Z","0.19.0-canary.ebb4c667.0":"2020-08-06T00:19:17.997Z","0.19.0-canary.aa44289e.0":"2020-08-06T18:27:52.912Z","0.19.0-canary.e6b0816b.0":"2020-08-07T18:44:19.748Z","0.19.0-canary.96d15938.0":"2020-08-07T20:29:22.132Z","0.19.0-canary.9d991c8c.0":"2020-08-07T22:08:53.265Z","0.19.0-canary.13bfbd72.0":"2020-08-10T19:27:52.190Z","0.19.0-canary.30b1b258.0":"2020-08-10T20:07:26.388Z","0.19.0-canary.1583e263.0":"2020-08-11T23:11:12.899Z","0.19.0-canary.fefb1a93.0":"2020-08-12T00:25:37.728Z","0.19.0-canary.1ac5b9d4.0":"2020-08-12T18:27:53.411Z","0.19.0-canary.f17f5052.0":"2020-08-13T17:15:02.374Z","0.19.0-canary.80b5d20d.0":"2020-08-13T18:17:46.280Z","0.19.0-canary.758635ed.0":"2020-08-14T17:17:09.582Z","0.19.0-canary.18d6b808.0":"2020-08-14T23:08:30.939Z","0.19.0-canary.5f8ffbd1.0":"2020-08-17T22:16:07.502Z","0.19.0-canary.8604d59e.0":"2020-08-18T01:03:11.794Z","0.19.0-canary.1d7d5e34.0":"2020-08-18T01:09:26.602Z","0.19.0-canary.9cc95c07.0":"2020-08-18T01:17:06.464Z","0.19.0-canary.9f65ced3.0":"2020-08-18T20:16:41.331Z","0.19.0-canary.5962b365.0":"2020-08-19T20:29:35.957Z","0.19.0-canary.9c9ec756.0":"2020-08-20T18:56:21.354Z","0.19.0-canary.fa0ad66a.0":"2020-08-20T20:35:30.901Z","0.19.0-canary.06ecdd6b.0":"2020-08-20T21:34:25.559Z","0.19.0-canary.2bca2318.0":"2020-08-21T17:53:00.867Z","0.19.0-canary.6aa47265.0":"2020-08-21T18:16:40.608Z","0.19.0-canary.e7202a07.0":"2020-08-21T19:24:06.459Z","0.19.0-canary.f208201e.0":"2020-08-24T19:03:42.811Z","0.19.0-canary.14a172db.0":"2020-08-25T19:48:23.394Z","0.19.0-canary.e6c1038d.0":"2020-08-27T19:37:34.984Z","0.19.0-canary.34012082.0":"2020-08-27T19:48:55.386Z","0.19.0-canary.c073f7b8.0":"2020-08-28T17:12:38.393Z","0.19.0-canary.b7ae68ff.0":"2020-08-29T01:27:34.896Z","0.19.0-canary.697e3879.0":"2020-09-02T00:13:47.734Z","0.19.0-canary.eafb7991.0":"2020-09-02T02:18:48.929Z","0.19.0-canary.606642ec.0":"2020-09-02T21:36:13.171Z","0.19.0-canary.ddf05c42.0":"2020-09-03T13:53:38.109Z","0.19.0-canary.b889e6dc.0":"2020-09-03T14:11:51.404Z","0.19.0-canary.aabeceb0.0":"2020-09-03T19:58:01.731Z","0.19.0-canary.d8cca3a6.0":"2020-09-03T21:32:04.783Z","0.19.0-canary.26d34b2e.0":"2020-09-03T21:57:25.038Z","0.19.0-canary.a1c44494.0":"2020-09-09T22:08:06.391Z","0.19.0-canary.be1cd1e9.0":"2020-09-10T16:41:37.336Z","0.19.0-canary.f094c0ce.0":"2020-09-10T17:36:44.615Z","0.19.0-canary.c1261e7d.0":"2020-09-11T02:26:51.693Z","0.19.0-canary.9b39ed1e.0":"2020-09-11T02:27:46.898Z","0.19.0-canary.e67214b3.0":"2020-09-11T02:32:05.303Z","0.19.0-canary.36f5da28.0":"2020-09-11T02:34:47.543Z","0.19.0-canary.3babab12.0":"2020-09-11T02:37:53.178Z","0.19.0-canary.a4481e6f.0":"2020-09-11T02:49:51.863Z","0.19.0-canary.a9177836.0":"2020-09-11T17:48:01.823Z","0.19.0-canary.b102a3c8.0":"2020-09-14T20:13:51.160Z","0.19.0-canary.a7fbc707.0":"2020-09-15T16:06:19.427Z","0.19.0-canary.ed6b8660.0":"2020-09-15T17:25:20.300Z","0.19.0-canary.9c2331f5.0":"2020-09-15T17:49:53.620Z","0.19.0-canary.63a5f088.0":"2020-09-16T21:38:30.231Z","0.19.0-canary.b7995e49.0":"2020-09-16T23:27:06.588Z","0.19.0-canary.0da3ec97.0":"2020-09-21T22:09:08.726Z","0.19.0-canary.a0793c96.0":"2020-09-22T17:05:06.060Z","0.19.0-canary.06998a3e.0":"2020-09-22T18:26:18.757Z","0.19.0-canary.3484a90d.0":"2020-09-22T22:04:40.126Z","0.19.0-canary.3f99af40.0":"2020-09-24T23:21:59.439Z","0.19.0-canary.72aa1129.0":"2020-09-25T21:07:53.388Z","0.19.0-canary.394fd3f6.0":"2020-09-28T14:13:05.551Z","0.19.0-canary.347110f1.0":"2020-09-28T16:50:53.429Z","0.19.0-canary.5e330bb9.0":"2020-09-30T22:01:45.881Z","0.19.0-canary.30b9e3a9.0":"2020-09-30T22:38:48.827Z","0.19.0-canary.7bb04b9a.0":"2020-10-01T23:23:37.284Z","0.19.0-canary.615d861d.0":"2020-10-02T01:33:57.005Z","0.19.0-canary.af110e86.0":"2020-10-02T23:50:27.987Z","0.19.0-canary.89d27ca5.0":"2020-10-06T01:27:35.304Z","0.19.0-canary.9ef2e7c2.0":"2020-10-07T00:14:57.703Z","0.19.0-canary.96c8bdc1.0":"2020-10-07T20:08:15.004Z","0.20.0-canary.6c21f034.0":"2020-10-07T22:31:03.475Z","0.19.0":"2020-10-07T22:33:29.695Z","0.20.0-canary.1f026aaa.0":"2020-10-08T22:54:14.892Z","0.19.1":"2020-10-08T23:06:10.857Z","0.20.0-canary.5f6894b1.0":"2020-10-08T23:07:47.911Z","0.20.0-canary.f6260d06.0":"2020-10-12T22:34:49.011Z","0.20.0-canary.2d1b08aa.0":"2020-10-13T19:22:48.278Z","0.20.0-canary.5bd58844.0":"2020-10-13T23:46:52.831Z","0.20.0-canary.bc846b29.0":"2020-10-14T18:16:24.482Z","0.20.0-canary.3280b686.0":"2020-10-16T00:05:00.540Z","0.20.0-canary.9e94cd38.0":"2020-10-16T21:15:02.337Z","0.20.0-canary.4773c773.0":"2020-10-16T22:34:45.711Z","0.20.0-canary.65787913.0":"2020-10-19T18:51:36.646Z","0.20.0-canary.5485fba3.0":"2020-10-19T21:24:46.171Z","0.20.0-canary.a39d0a92.0":"2020-10-23T21:24:21.854Z","0.20.0-canary.4eafcbc1.0":"2020-10-27T01:21:32.774Z","0.20.0-canary.32961593.0":"2020-10-28T00:39:44.969Z","0.20.0-canary.8e3a0601.0":"2020-10-29T21:37:40.069Z","0.20.0-canary.178c25b4.0":"2020-10-29T21:51:10.095Z","0.20.0-canary.124beb49.0":"2020-10-31T00:07:05.843Z","0.20.0-canary.5937f468.0":"2020-11-04T21:06:25.890Z","0.20.0-canary.a9bafaee.0":"2020-11-05T22:31:20.473Z","0.20.0-canary.184861ee.0":"2020-11-07T00:38:10.756Z","0.20.0-canary.6c6ae2d6.0":"2020-11-09T13:06:27.164Z","0.20.0-canary.ea2aa477.0":"2020-11-09T23:58:24.989Z","0.20.0-canary.a2c088dc.0":"2020-11-10T14:24:49.804Z","0.20.0-canary.b04d71d4.0":"2020-11-12T10:42:28.967Z","0.20.0-canary.2c553352.0":"2020-11-12T22:43:19.038Z","0.20.0-canary.6560d19a.0":"2020-11-13T20:49:00.564Z","0.20.0-canary.a28d5ec3.0":"2020-11-17T15:24:40.039Z","0.20.0-canary.03e7e778.0":"2020-11-17T19:26:52.552Z","0.20.0-canary.ac8ed597.0":"2020-11-17T22:12:27.753Z","0.20.0-canary.b6a60f60.0":"2020-11-17T22:52:53.606Z","0.20.0-canary.71cc24fb.0":"2020-11-17T23:17:17.174Z","0.20.0-canary.761027ff.0":"2020-11-18T22:14:50.384Z","0.20.0-canary.dc93d04c.0":"2020-11-18T22:20:25.704Z","0.20.0-canary.4a5d4eeb.0":"2020-11-19T11:31:09.754Z","0.20.0-canary.bd176a15.0":"2020-11-19T19:11:05.772Z","0.20.0-canary.e85aa60d.0":"2020-11-23T22:25:18.307Z","0.20.0-canary.72092360.0":"2020-11-24T04:18:42.481Z","0.20.0-canary.baf9d39f.0":"2020-11-25T21:48:51.249Z","0.20.0-canary.51aab0ad.0":"2020-12-01T01:05:52.848Z","0.20.0-canary.8fd4af5b.0":"2020-12-03T00:27:47.934Z","0.20.0-canary.26d14d2f.0":"2020-12-03T00:56:26.103Z","0.20.0-canary.1663d7e4.0":"2020-12-03T01:17:03.682Z","0.20.0-canary.cbe9fc12.0":"2020-12-03T19:07:50.372Z","0.20.0-canary.9755be10.0":"2020-12-03T19:25:53.304Z","0.20.0-canary.3f64270c.0":"2020-12-03T21:50:24.371Z","0.21.0-canary.d893b14a.0":"2020-12-03T22:26:29.749Z","0.20.0":"2020-12-03T22:29:00.314Z","0.21.0-canary.47c7d7e5.0":"2020-12-11T19:57:22.246Z","0.21.0-canary.b304a78b.0":"2020-12-15T20:04:36.467Z","0.21.0-canary.777c5fa4.0":"2020-12-16T21:54:32.133Z","0.21.0-canary.635c7996.0":"2020-12-17T23:32:31.173Z","0.21.0-canary.20b0045f.0":"2020-12-17T23:49:27.674Z","0.21.0-canary.41f77000.0":"2020-12-18T00:35:46.442Z","0.21.0-canary.afe4079a.0":"2020-12-22T17:40:17.022Z","0.21.0-canary.407ef8f9.0":"2020-12-30T23:03:09.357Z","0.21.0-canary.2e26e137.0":"2021-01-05T18:50:07.083Z","0.21.0-canary.9009f6c1.0":"2021-01-08T19:54:50.164Z","0.21.0-canary.ee99b646.0":"2021-01-11T23:08:44.773Z","0.21.0-canary.740ed33b.0":"2021-01-12T18:04:35.730Z","0.21.0-canary.c5c541b1.0":"2021-01-12T18:46:05.936Z","0.21.0-canary.06fe9d90.0":"2021-01-12T20:55:32.294Z","0.21.0-canary.269eed01.0":"2021-01-13T21:45:55.468Z","0.21.0-canary.8c075f35.0":"2021-01-13T23:07:50.588Z","0.21.0-canary.3cda381b.0":"2021-01-14T00:05:05.836Z","0.21.0-canary.bc113605.0":"2021-01-14T00:45:57.847Z","0.21.0-canary.0c1d6ff9.0":"2021-01-15T20:09:46.326Z","0.21.0-canary.b4332e00.0":"2021-01-15T22:07:57.357Z","0.21.0-canary.2899691d.0":"2021-01-16T01:45:07.739Z","0.21.0-canary.fe73953b.0":"2021-01-19T19:21:56.098Z","0.21.0-canary.d3a16455.0":"2021-01-19T19:52:51.468Z","0.21.0-canary.597ca1b6.0":"2021-01-20T01:00:31.413Z","0.21.0-canary.3c195efe.0":"2021-01-20T02:02:02.403Z","0.21.0-canary.f7b8755f.0":"2021-01-20T20:38:14.779Z","0.21.0-canary.f60de7df.0":"2021-01-20T23:37:07.593Z","0.21.0-canary.664a2927.0":"2021-01-21T19:19:05.925Z","0.21.0-canary.a6d312e5.0":"2021-01-21T21:48:01.457Z","0.21.0-canary.027365eb.0":"2021-01-22T21:08:04.856Z","0.21.0-canary.7e72b66d.0":"2021-01-22T23:27:03.407Z","0.21.0-canary.a6d6a1e7.0":"2021-01-22T23:33:16.182Z","0.21.0-canary.b95fe100.0":"2021-01-22T23:52:21.539Z","0.21.0-canary.c8797192.0":"2021-01-23T00:07:45.938Z","0.21.0-canary.946f5563.0":"2021-01-23T00:44:06.168Z","0.21.0-canary.43664f0e.0":"2021-01-25T22:40:40.685Z","0.21.0-canary.2e769e3c.0":"2021-01-26T00:06:47.940Z","0.21.0-canary.14e01610.0":"2021-01-27T19:52:01.249Z","0.21.0-canary.5de00c1b.0":"2021-01-27T20:17:42.114Z","0.21.0-canary.5a328336.0":"2021-01-28T19:55:16.942Z","0.21.0-canary.533b1251.0":"2021-01-29T15:12:17.963Z","0.21.0-canary.ab5c0a10.0":"2021-02-02T20:17:59.571Z","0.21.0-canary.b7a40b27.0":"2021-02-03T15:04:25.706Z","0.21.0-canary.0fdee204.0":"2021-02-03T18:34:36.095Z","0.21.0-canary.5160e548.0":"2021-02-05T23:51:47.498Z","0.21.0-canary.4fa2daec.0":"2021-02-09T00:19:18.288Z","0.21.0-canary.67f285fb.0":"2021-02-09T00:51:42.585Z","0.21.0-canary.58cd5a70.0":"2021-02-11T20:45:41.264Z","0.21.0-canary.8107ca43.0":"2021-02-11T23:29:33.249Z","0.21.0-canary.d35d64ef.0":"2021-02-11T23:43:40.688Z","0.21.0-canary.78bcf058.0":"2021-02-12T00:48:54.742Z","0.21.0-canary.0c6908fd.0":"2021-02-12T01:25:24.600Z","0.21.0-canary.f1f34ee0.0":"2021-02-12T20:18:38.551Z","0.21.0-canary.d84df029.0":"2021-02-16T19:08:51.679Z","0.21.0-canary.c525f471.0":"2021-02-17T20:54:05.992Z","0.21.0-canary.ba7a1b35.0":"2021-02-19T00:14:37.625Z","0.21.0-canary.9a566dda.0":"2021-02-19T18:38:43.593Z","0.21.0-canary.55addb8c.0":"2021-02-19T22:02:50.419Z","0.21.0-canary.85dd5e9b.0":"2021-02-23T02:20:02.705Z","0.21.0-canary.aa3e078e.0":"2021-02-23T17:15:46.175Z","0.21.0-canary.dccd254e.0":"2021-02-26T21:10:48.817Z","0.21.0-canary.7dd1a27d.0":"2021-03-01T22:01:42.637Z","0.21.0-canary.12574572.0":"2021-03-02T20:30:03.144Z","0.21.0-canary.1109a3d3.0":"2021-03-02T20:35:17.046Z","0.21.0-canary.b9cd8739.0":"2021-03-03T17:48:39.647Z","0.21.0-canary.71ee796a.0":"2021-03-03T20:11:47.311Z","0.21.0-canary.2be191ed.0":"2021-03-03T21:52:16.822Z","0.21.0-canary.6dc7b06f.0":"2021-03-05T00:22:58.743Z","0.21.0-canary.24fe7ba6.0":"2021-03-05T17:27:41.922Z","0.21.0-canary.12c477d1.0":"2021-03-08T22:24:06.260Z","0.21.0-canary.4c38f801.0":"2021-03-08T23:25:19.216Z","0.21.0-canary.8795b83f.0":"2021-03-09T18:28:04.835Z","0.21.0-canary.12b84cb7.0":"2021-03-10T00:41:47.527Z","0.21.0-canary.6ac6784b.0":"2021-03-10T00:52:11.561Z","0.21.0-canary.b6d92934.0":"2021-03-10T22:01:33.765Z","0.21.0-canary.99a55b9e.0":"2021-03-10T22:52:21.912Z","0.21.0-canary.bb14efb7.0":"2021-03-10T23:37:50.051Z","0.21.0-canary.9ecf3bdd.0":"2021-03-11T00:24:16.707Z","0.21.0-canary.7c0e02fd.0":"2021-03-11T01:47:16.813Z","0.21.0-canary.2d6d59cc.0":"2021-03-11T18:30:05.953Z","0.21.0-canary.0138863c.0":"2021-03-11T18:37:29.721Z","0.21.0-canary.926f5bad.0":"2021-03-11T20:19:19.991Z","0.21.0-canary.520290a9.0":"2021-03-11T22:28:35.678Z","0.21.0-canary.9ec431d1.0":"2021-03-11T22:33:01.247Z","0.21.0-canary.4246c082.0":"2021-03-11T22:39:59.630Z","0.21.0-canary.2d736253.0":"2021-03-15T22:36:28.358Z","0.21.0-canary.7033124d.0":"2021-03-16T18:38:15.176Z","0.21.0-canary.6c0ee901.0":"2021-03-16T22:39:40.591Z","0.21.0-canary.7f0d605e.0":"2021-03-17T18:05:22.124Z","0.21.0-canary.572107b5.0":"2021-03-18T23:54:53.346Z","0.21.0-canary.b7b220b1.0":"2021-03-19T00:20:38.939Z","0.21.0-canary.233b2de7.0":"2021-03-19T18:30:30.508Z","0.21.0-canary.0c1a2d97.0":"2021-03-19T21:21:55.676Z","0.21.0-canary.57ca2e73.0":"2021-03-19T22:41:31.301Z","0.21.0-canary.5c058f4b.0":"2021-03-23T23:09:04.475Z","0.21.0-canary.e27ef7cd.0":"2021-03-30T20:11:59.584Z","0.21.0-canary.15c09e74.0":"2021-03-31T16:48:22.211Z","0.21.0-canary.4dc32be3.0":"2021-03-31T23:48:52.294Z","0.21.0-canary.4b717f65.0":"2021-04-01T18:15:07.656Z","0.21.0-canary.c6870f20.0":"2021-04-01T23:42:44.171Z","0.21.0-canary.852f873c.0":"2021-04-02T05:22:46.372Z","0.21.0-canary.4a674a1d.0":"2021-04-02T14:44:55.875Z","0.21.0-canary.c5b29ff1.0":"2021-04-05T17:50:38.426Z","0.21.0-canary.583644a6.0":"2021-04-05T17:51:38.061Z","0.21.0-canary.02ac1e6b.0":"2021-04-06T18:37:03.634Z","0.21.0-canary.5ac5856e.0":"2021-04-06T18:43:22.836Z","0.21.0-canary.bb23dbc4.0":"2021-04-07T21:24:27.576Z","0.21.0-canary.e539904c.0":"2021-04-08T18:02:33.198Z","0.21.0-canary.a93ae333.0":"2021-04-09T20:12:13.682Z","0.21.0-canary.e142c144.0":"2021-04-12T14:51:12.571Z","0.21.0-canary.382d7eb0.0":"2021-04-12T22:05:57.399Z","0.21.0-canary.b16c7885.0":"2021-04-12T22:39:40.553Z","0.21.0-canary.0e92782b.0":"2021-04-13T14:42:27.363Z","0.21.0-canary.70b3a072.0":"2021-04-14T22:26:49.700Z","0.21.0-canary.ff79b092.0":"2021-04-15T19:00:34.326Z","0.21.0-canary.f35b2fd7.0":"2021-04-15T19:10:54.810Z","0.21.0-canary.11977cac.0":"2021-04-16T00:58:34.789Z","0.21.0-canary.018ff45e.0":"2021-04-22T22:51:31.049Z","0.21.0-canary.c99d1fa5.0":"2021-04-26T19:47:06.650Z","0.21.0-canary.eea9b304.0":"2021-04-27T22:53:38.731Z","0.21.0-canary.5dd85d0c.0":"2021-04-28T00:10:02.607Z","0.21.0-canary.cc813cff.0":"2021-04-30T21:19:49.565Z","0.21.0-canary.0875e898.0":"2021-04-30T21:28:00.752Z","0.21.0":"2021-04-30T23:58:14.093Z","0.22.0-canary.8f1e7e1b.0":"2021-05-01T00:05:48.341Z","0.22.0-canary.deb0e792.0":"2021-05-03T21:34:45.020Z","0.22.0-canary.a3ff615f.0":"2021-05-03T22:34:04.895Z","0.22.0-canary.948ccfb5.0":"2021-05-04T00:11:12.315Z","0.22.0-canary.9f8337d7.0":"2021-05-04T18:37:25.924Z","0.22.0-canary.5813480a.0":"2021-05-05T18:25:55.730Z","0.22.0-canary.ab7fc1bf.0":"2021-05-06T17:59:59.272Z","0.22.0-canary.25693d60.0":"2021-05-07T21:56:36.972Z","0.22.0-canary.c497962b.0":"2021-05-07T22:20:24.497Z","0.22.0-canary.e300688e.0":"2021-05-07T22:24:51.049Z","0.22.0-canary.d70287f2.0":"2021-05-10T19:29:50.185Z","0.22.0-canary.02e841b2.0":"2021-05-10T20:35:05.766Z","0.22.0-canary.badda2f0.0":"2021-05-11T00:35:09.638Z","0.22.0-canary.004aca62.0":"2021-05-11T18:06:52.044Z","0.22.0-canary.4af17446.0":"2021-05-11T18:46:37.714Z","0.22.0-canary.b94d7187.0":"2021-05-11T18:52:10.747Z","0.22.0-canary.4021b2f9.0":"2021-05-12T22:01:08.425Z","0.22.0-canary.6a5956a3.0":"2021-05-12T22:17:52.592Z","0.22.0-canary.b6e8a74b.0":"2021-05-12T23:03:53.095Z","0.22.0-canary.c94e1030.0":"2021-05-12T23:09:40.610Z","0.22.0-canary.40a34e35.0":"2021-05-12T23:58:57.022Z","0.22.0-canary.1be14d2c.0":"2021-05-13T17:50:22.231Z","0.22.0-canary.87dbd64f.0":"2021-05-14T20:58:59.278Z","0.22.0-canary.c452e4da.0":"2021-05-17T23:32:34.850Z","0.22.0-canary.2212691a.0":"2021-05-17T23:53:10.278Z","0.22.0-canary.f748ff2f.0":"2021-05-18T00:23:03.623Z","0.22.0-canary.cc04657a.0":"2021-05-18T01:21:28.922Z","0.22.0-canary.3a3114fa.0":"2021-05-19T23:40:46.144Z","0.22.0-canary.b46bdf83.0":"2021-05-20T01:51:32.615Z","0.22.0-canary.b401a081.0":"2021-05-21T23:23:34.623Z","0.22.0-canary.012c8dc0.0":"2021-05-22T00:16:58.398Z","0.22.0-canary.e01a1731.0":"2021-05-24T16:03:22.319Z","0.22.0-canary.59174b9f.0":"2021-05-25T18:02:50.575Z","0.22.0-canary.c96cb2e0.0":"2021-05-25T19:12:53.463Z","0.22.0-canary.b9b0e330.0":"2021-05-25T21:00:58.372Z","0.22.0-canary.ea2a8063.0":"2021-05-25T21:06:03.108Z","0.22.0-canary.60cd9178.0":"2021-05-25T23:14:35.930Z","0.22.0-canary.2e2c75f2.0":"2021-05-26T00:12:04.216Z","0.22.0-canary.b99c77d5.0":"2021-05-26T19:13:51.369Z","0.22.0-canary.0de82c12.0":"2021-05-26T21:31:41.306Z","0.22.0-canary.227a4614.0":"2021-05-27T16:03:51.952Z","0.22.0-canary.b3d21d31.0":"2021-05-27T18:45:51.214Z","0.22.0-canary.288c33ec.0":"2021-06-02T19:33:36.431Z","0.22.0-canary.7eb7ccb0.0":"2021-06-03T19:55:35.128Z","0.22.0-canary.7fcc0726.0":"2021-06-08T00:46:04.774Z","0.22.0-canary.220a4e5e.0":"2021-06-08T17:50:41.680Z","0.22.0-canary.6b2d6ab0.0":"2021-06-08T18:37:11.833Z","0.22.0-canary.2b20825e.0":"2021-06-11T23:49:32.524Z","0.22.0-canary.e1511867.0":"2021-06-12T00:57:49.422Z","0.22.0-canary.ef4a0c0d.0":"2021-06-15T19:52:27.372Z","0.22.0-canary.573d8913.0":"2021-06-18T23:27:17.457Z","0.22.0-canary.21dba001.0":"2021-06-21T21:41:08.740Z","0.22.0-canary.6f5bfd0f.0":"2021-06-24T22:56:36.081Z","0.22.0-canary.fd8360b4.0":"2021-06-25T19:09:41.261Z","0.22.0-canary.6f74432f.0":"2021-06-25T20:47:33.282Z","0.22.0-canary.b62f901d.0":"2021-06-25T22:17:50.109Z","0.22.0-canary.73122cba.0":"2021-06-30T19:37:20.761Z","0.22.0-canary.a6912af5.0":"2021-07-01T21:34:37.024Z","0.22.0-canary.134f24bf.0":"2021-07-01T22:32:53.761Z","0.22.0-canary.1debb78f.0":"2021-07-07T00:46:58.331Z","0.22.0-canary.d53edeb6.0":"2021-07-07T17:00:50.135Z","0.22.0-canary.2226489a.0":"2021-07-08T18:02:03.766Z","0.22.0-canary.d4801c11.0":"2021-07-08T20:03:18.133Z","0.22.0-canary.7ec5f2d6.0":"2021-07-12T17:17:23.552Z","0.22.0-canary.86cb4ca7.0":"2021-07-13T17:38:11.444Z","0.22.0-canary.bc9a724e.0":"2021-07-13T18:42:37.650Z","0.22.0-canary.7847b83a.0":"2021-07-14T17:19:13.113Z","0.22.0-canary.8cba18fa.0":"2021-07-14T20:27:09.995Z","0.22.1":"2021-07-14T22:53:01.555Z","0.23.0-canary.fbc09b4e.0":"2021-07-14T22:54:40.983Z","0.23.0-canary.73e9f83c.0":"2021-07-15T20:40:05.740Z","0.23.0-canary.cc0aa7a9.0":"2021-07-15T21:04:17.939Z","0.23.0-canary.a8fcac45.0":"2021-07-15T21:23:09.543Z","0.23.0-canary.3ca580d1.0":"2021-07-15T22:04:36.071Z","0.23.0-canary.9e41cb2e.0":"2021-07-15T23:09:20.177Z","0.23.0-canary.c180db74.0":"2021-07-16T17:25:31.995Z","0.23.0-canary.0d0a9267.0":"2021-07-16T17:57:45.643Z","0.23.0-canary.d234ec3f.0":"2021-07-16T18:08:17.590Z","0.23.0-canary.5cd4bcdb.0":"2021-07-16T21:12:39.315Z","0.23.0-canary.2b133cb2.0":"2021-07-16T22:07:07.250Z","0.23.0-canary.ae4f422b.0":"2021-07-16T23:54:35.380Z","0.23.0-canary.90ff8057.0":"2021-07-19T14:08:18.305Z","0.23.0-canary.dd7b75d1.0":"2021-07-19T17:51:17.032Z","0.23.0-canary.104debd5.0":"2021-07-19T22:54:07.497Z","0.23.0-canary.4612705d.0":"2021-07-20T16:05:11.471Z","0.23.0-canary.b36502a2.0":"2021-07-21T22:35:10.090Z","0.23.0-canary.2c392ab3.0":"2021-07-22T14:53:28.822Z","0.23.0-canary.e8bac95a.0":"2021-07-22T18:53:24.297Z","0.23.0-canary.38f29f8f.0":"2021-07-23T18:16:35.829Z","0.23.0-canary.e0693475.0":"2021-07-23T18:56:45.452Z","0.23.0-canary.d595e030.0":"2021-07-23T20:53:45.759Z","0.23.0-canary.fe7cca31.0":"2021-07-23T21:57:19.508Z","0.23.0-canary.fd9da483.0":"2021-07-26T21:25:30.628Z","0.23.0-canary.8a4c7e06.0":"2021-07-26T22:44:36.632Z","0.23.0-canary.5b395fd1.0":"2021-07-27T22:53:41.769Z","0.23.0-canary.e5efdcc0.0":"2021-07-28T17:23:10.546Z","0.23.0-canary.ab310900.0":"2021-07-28T20:21:56.547Z","0.23.0-canary.21dc9bc5.0":"2021-07-28T20:26:44.549Z","0.23.0-canary.68c7fe5c.0":"2021-07-29T18:32:29.115Z","0.23.0-canary.aebe39e8.0":"2021-07-30T19:14:22.044Z","0.23.0-canary.ea889c69.0":"2021-08-03T18:48:19.656Z","0.23.0-canary.21918905.0":"2021-08-03T21:15:02.993Z","0.23.0-canary.193c87be.0":"2021-08-04T18:08:17.254Z","0.23.0-canary.6fc52d8b.0":"2021-08-05T18:11:27.681Z","0.23.0-canary.e2e9777d.0":"2021-08-05T22:48:03.750Z","0.23.0-canary.72ff1e68.0":"2021-08-06T20:49:25.509Z","0.23.0-canary.c527e93b.0":"2021-08-06T21:11:07.933Z","0.23.0-canary.78b1eaac.0":"2021-08-09T18:04:27.358Z","0.23.0-canary.a8a4ddc9.0":"2021-08-10T18:47:31.649Z","0.23.0-canary.99fc0632.0":"2021-08-11T22:22:12.890Z","0.23.0-canary.3f47ae57.0":"2021-08-12T18:00:37.089Z","0.23.0-canary.6b9bfc32.0":"2021-08-12T18:24:48.449Z","0.23.0-canary.c89ecc63.0":"2021-08-16T17:17:32.793Z","0.23.0-canary.59de86bd.0":"2021-08-18T01:39:01.397Z","0.23.0-canary.dcda879b.0":"2021-08-18T22:23:52.455Z","0.23.0-canary.dbb8b366.0":"2021-08-19T23:00:55.778Z","0.23.0-canary.c6e3060c.0":"2021-08-19T23:02:46.611Z","0.23.0-canary.03120b7d.0":"2021-08-20T00:27:56.849Z","0.23.0-canary.d75a5f74.0":"2021-08-20T07:57:12.837Z","0.23.0-canary.3d79ffe7.0":"2021-08-20T17:22:05.079Z","0.23.0-canary.02213ebe.0":"2021-08-20T17:26:52.020Z","0.23.0-canary.90a999b9.0":"2021-08-20T18:43:14.721Z","0.23.0-canary.6db58716.0":"2021-08-23T09:08:40.985Z","0.23.0-canary.9fb5bc35.0":"2021-08-23T22:50:59.599Z","0.23.0-canary.ddaa5d8e.0":"2021-08-24T18:50:28.944Z","0.23.0-canary.756208fb.0":"2021-08-25T19:51:24.492Z","0.23.0-canary.9576dcd9.0":"2021-08-25T21:44:34.217Z","0.23.0-canary.7531cf97.0":"2021-08-26T17:26:49.082Z","0.23.0-canary.3bab26b4.0":"2021-08-26T21:45:27.726Z","0.23.0-canary.fab48bee.0":"2021-08-26T22:08:24.640Z","0.23.0-canary.dec18df7.0":"2021-08-30T08:29:38.744Z","0.23.0-canary.61fe5b17.0":"2021-08-30T19:29:22.246Z","0.23.0-canary.a8c31f54.0":"2021-08-30T20:32:11.083Z","0.23.0-canary.a096dba8.0":"2021-08-31T22:19:35.786Z","0.23.0-canary.7ec04d47.0":"2021-09-02T23:26:04.023Z","0.23.0-canary.d00b098d.0":"2021-09-03T21:27:18.626Z","0.23.0-canary.f29b3352.0":"2021-09-07T18:16:48.951Z","0.23.0-canary.4962a163.0":"2021-09-07T23:54:01.847Z","0.23.0-canary.33102bf4.0":"2021-09-08T00:14:13.523Z","0.23.0-canary.76c68381.0":"2021-09-08T20:14:22.489Z","0.23.0-canary.17d51f76.0":"2021-09-08T23:26:56.427Z","0.23.0-canary.3fae6c2d.0":"2021-09-10T18:33:34.558Z","0.23.0-canary.f1958c4b.0":"2021-09-13T19:21:19.515Z","0.23.0-canary.78abbd59.0":"2021-09-13T21:26:57.835Z","0.23.0":"2021-09-13T21:35:55.799Z","0.24.0-canary.9830d665.0":"2021-09-13T21:37:42.609Z","0.24.0-canary.20e2081c.0":"2021-09-13T23:32:47.821Z","0.24.0-canary.583613a9.0":"2021-09-14T16:55:52.618Z","0.24.0-canary.0e1bd56f.0":"2021-09-14T17:32:55.924Z","0.24.0-canary.7bb1818e.0":"2021-09-15T00:36:30.304Z","0.24.0-canary.b5e665a9.0":"2021-09-15T18:13:48.688Z","0.24.0-canary.ab1e177c.0":"2021-09-15T18:45:30.819Z","0.24.0-canary.8dff8894.0":"2021-09-15T19:09:11.370Z","0.24.0-canary.9cd7e927.0":"2021-09-15T20:32:50.986Z","0.24.0-canary.a7132082.0":"2021-09-15T21:46:17.826Z","0.24.0-canary.cd9110cd.0":"2021-09-16T17:46:12.162Z","0.24.0-canary.1e5a9883.0":"2021-09-17T20:39:30.039Z","0.24.0-canary.32c830ee.0":"2021-09-17T23:09:09.349Z","0.24.0-canary.1de87bb7.0":"2021-09-18T18:52:31.384Z","0.24.0-canary.f2ea80c4.0":"2021-09-20T17:55:17.011Z","0.24.0-canary.569d739f.0":"2021-09-20T21:24:16.642Z","0.24.0-canary.5a434a50.0":"2021-09-21T02:01:13.523Z","0.26.0-canary.b1c1ab52.0":"2021-09-21T03:12:33.952Z","0.25.1":"2021-09-21T03:12:48.277Z","0.26.0-canary.ae060177.0":"2021-09-21T14:38:31.251Z","0.26.0-canary.b6fe2a12.0":"2021-09-22T20:16:40.636Z","0.26.0-canary.07e91417.0":"2021-09-22T21:06:12.304Z","0.26.0-canary.e2203ffa.0":"2021-09-23T18:28:02.119Z","0.26.0-canary.4abe237e.0":"2021-09-24T17:31:32.055Z","0.26.0-canary.6278ee5d.0":"2021-09-27T18:31:45.381Z","0.26.0-canary.3a5d5f34.0":"2021-09-27T22:41:54.738Z","0.26.0-canary.143ed3c8.0":"2021-09-29T01:51:14.286Z","0.26.0-canary.e5923d68.0":"2021-09-30T00:06:15.527Z","0.26.0-canary.d8ed5109.0":"2021-09-30T23:34:16.859Z","0.26.0-canary.0efb9c2c.0":"2021-10-02T02:08:40.683Z","0.26.0-canary.1c9adcb3.0":"2021-10-04T17:33:57.724Z","0.26.0-canary.dfc00d60.0":"2021-10-09T00:57:42.251Z","0.26.0-canary.c3aa844c.0":"2021-10-11T23:14:44.214Z","0.25.2":"2021-10-11T23:18:38.362Z","0.26.0-canary.406d6fe1.0":"2021-10-13T20:59:50.724Z","0.26.0-canary.ca0a674f.0":"2021-10-18T21:37:22.076Z","0.26.0-canary.eefcf660.0":"2021-10-20T21:24:00.679Z","0.26.0-canary.d21acc8f.0":"2021-10-20T22:32:52.796Z","0.25.3":"2021-10-21T17:55:49.526Z","0.26.0-canary.60449b7b.0":"2021-10-21T18:17:54.067Z","0.26.0-canary.0d8084ed.0":"2021-10-28T17:45:19.446Z","0.26.0-canary.232327ee.0":"2021-11-01T20:16:11.380Z","0.26.0-canary.0a492ae8.0":"2021-11-02T10:00:52.989Z","0.26.0-canary.0aa18745.0":"2021-11-02T18:08:16.523Z","0.26.0-canary.f3e28323.0":"2021-11-02T18:59:58.444Z","0.26.0-canary.27e05c5d.0":"2021-11-03T18:45:23.653Z","0.26.0-canary.b9e44af7.0":"2021-11-03T19:04:27.251Z","0.26.0-canary.448f6cb9.0":"2021-11-04T18:08:18.540Z","0.26.0-canary.8067ce28.0":"2021-11-04T22:22:51.127Z","0.26.0-canary.345c2bb9.0":"2021-12-02T17:10:45.974Z","0.26.0-canary.0547aeeb.0":"2021-12-06T16:36:51.753Z","0.26.0-canary.3b2452cc.0":"2021-12-09T00:06:17.070Z","0.26.0-canary.cf7ba5a9.0":"2021-12-10T19:07:33.784Z","0.26.0-canary.e1bcf14e.0":"2021-12-28T20:46:12.051Z","0.26.0-canary.b9d35b69.0":"2022-01-05T18:27:48.654Z","0.26.0-canary.2afff08e.0":"2022-01-06T22:23:30.701Z","0.26.0-canary.893fc857.0":"2022-01-07T18:54:30.872Z","0.26.0-canary.69ba13b7.0":"2022-01-19T22:24:24.912Z","0.26.0-canary.0af8ade5.0":"2022-02-07T22:05:45.938Z","0.26.0":"2022-05-03T17:30:39.239Z","0.26.1":"2022-05-09T20:31:58.314Z","0.27.0":"2022-08-12T19:12:14.973Z"},"maintainers":[{"email":"abhiomkar@gmail.com","name":"abhiomkar"},{"email":"aomarks@gmail.com","name":"aomarks"},{"email":"andrey.prigogin@gmail.com","name":"aprigogin"},{"email":"asyncliz@gmail.com","name":"asyncliz"},{"email":"dfreedm2@gmail.com","name":"azakus"},{"email":"bicknellr@gmail.com","name":"bicknellr"},{"email":"wangchan518@gmail.com","name":"candysonya"},{"email":"emarquez@google.com","name":"emarquez"},{"email":"esgonzalez@google.com","name":"esgonzalez"},{"email":"aprigogin+npm@google.com","name":"material-admin"},{"email":"prodee@google.com","name":"patrickrodee"},{"email":"sayrisuarez@google.com","name":"ssuarez"},{"email":"brian.t.vann@gmail.com","name":"taylorv"},{"email":"hi@yef.im","name":"yefim"}],"description":"Material Design list web component","license":"Apache-2.0","readme":"# `<mwc-list>` [![Published on npm](https://img.shields.io/npm/v/@material/mwc-list.svg)](https://www.npmjs.com/package/@material/mwc-list)\n\n> IMPORTANT: The Material Web Components are a work in progress and subject to\n> major changes until 1.0 release.\n\nLists are continuous, vertical indexes of text or images.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/header.png\" width=\"402px\">\n\n[Material Design Guidelines: lists](https://material.io/design/components/lists.html)\n\n[Demo](https://material-components.github.io/material-web/demos/list/)\n\n## Installation\n\n```sh\nnpm install @material/mwc-list\n```\n\n> NOTE: The Material Web Components are distributed as ES2017 JavaScript\n> Modules, and use the Custom Elements API. They are compatible with all modern\n> browsers including Chrome, Firefox, Safari, Edge, and IE11, but an additional\n> tooling step is required to resolve *bare module specifiers*, as well as\n> transpilation and polyfills for IE11. See\n> [here](https://github.com/material-components/material-components-web-components#quick-start)\n> for detailed instructions.\n\n## Example usage\n\n### Basic\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/basic.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list.js.js';\n  import '@material/mwc-list/mwc-list-item.js.js';\n</script>\n```\n\n### Activatable\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/activatable.png\" width=\"402px\">\n\n```html\n<mwc-list activatable>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Multi-selectable (activatable)\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/multi.png\" width=\"402px\">\n\n```html\n<mwc-list activatable multi>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <mwc-list-item selected activated>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item selected activated>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Leading Graphic\n\n_Note_: it is not recommended to mix graphic sizes in the same list.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/leading_graphic.png\" width=\"402px\">\n\n```html\n<style>\n  /* invert icon color */\n  mwc-icon {\n    background-color: gray;\n    color: white;\n  }\n</style>\n\n<mwc-list>\n  <mwc-list-item graphic=\"avatar\">\n    <span>Avatar graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <span>Icon graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"medium\">\n    <span>medium graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"large\">\n    <span>large graphic</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-list-item.js.js';\n  import '@material/mwc-list/mwc-list.js.js';\n  import '@material/mwc-icon/mwc-icon.js';\n</script>\n```\n\n### Meta Icon\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/meta_icon.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item hasMeta>\n    <span>Location A</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location B</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location C</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item hasMeta>\n    <span>Location D</span>\n    <mwc-icon slot=\"meta\">info</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Two-Line\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/two_line.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item twoline>\n    <span>Item 0</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 1</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 2</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n  <mwc-list-item twoline>\n    <span>Item 3</span>\n    <span slot=\"secondary\">Secondary line</span>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Dividers\n\nDividers must have the `divider` attribute and it is recommended to add\n`role=\"separator\"` for screen readers. There are 3 variants of dividers,\nfull-width (default), padded (respects list padding), and inset (left-padding\nrespects avatar and icon paddding). These variants can be mixed.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/dividers.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-list-item>Item 0</mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item>Item 3</mwc-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n  <li divider inset padded role=\"separator\"></li>\n  <mwc-list-item graphic=\"avatar\">\n    <span>avatar item</span>\n    <mwc-icon slot=\"graphic\">folder</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Checklist\n\n`mwc-check-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/check_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-check-list-item selected>Item 0</mwc-check-list-item>\n  <mwc-check-list-item selected>Item 1</mwc-check-list-item>\n  <li divider role=\"separator\" padded></li>\n  <mwc-check-list-item left selected>Item 2 (left)</mwc-check-list-item>\n  <mwc-check-list-item left>Item 3 (left)</mwc-check-list-item>\n</mwc-list>\n\n<script type=\"module\">\n  import '@material/mwc-list/mwc-check-list-item.js.js';\n  import '@material/mwc-list/mwc-list.js.js';\n</script>\n```\n\n### Radio List\n\n`mwc-radio-list-item` inherits from `mwc-list-item`, so it will share a similar\nAPI to `mwc-list-item`.\n\nSetting `group` on the `radio-list-item` will group those `mwc-radio`s together\nacross the same Document.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list>\n  <mwc-radio-list-item group=\"a\" selected>Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"a\">Item 1</mwc-radio-list-item>\n  <li divider padded role=\"separator\"></li>\n  <mwc-radio-list-item left group=\"a\">Item 2 (left)</mwc-radio-list-item>\n  <mwc-radio-list-item left group=\"a\">Item 3 (left)</mwc-radio-list-item>\n</mwc-list>\n```\n\n### Multi Radio List\n\nA radio list can also have `multi`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/multi_radio_list.png\" width=\"402px\">\n\n```html\n<mwc-list multi>\n  <mwc-radio-list-item group=\"b\">Item 0</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"b\" selected>Item 1</mwc-radio-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-radio-list-item group=\"c\" selected>Item 2</mwc-radio-list-item>\n  <mwc-radio-list-item group=\"c\">Item 3</mwc-radio-list-item>\n</mwc-list>\n<script type=\"module\">\n  import '@material/mwc-list/mwc-radio-list-item.js.js';\n  import '@material/mwc-list/mwc-list.js.js';\n</script>\n```\n\n### Item Noninteractive\n\nSetting a list-item to non-interactive will disable focus and pointer events on\nthe item, and it will no longer be considered for selection.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/noninteractive.png\" width=\"402px\">\n\n```html\n<style>\n  .inverted {\n    background-color: gray;\n    color: white;\n  }\n</style>\n<mwc-list>\n  <mwc-list-item twoline graphic=\"avatar\" noninteractive>\n    <span>User Name</span>\n    <span slot=\"secondary\">user@domain.tld</span>\n    <mwc-icon slot=\"graphic\" class=\"inverted\">tag_faces</mwc-icon>\n  </mwc-list-item>\n  <li divider role=\"separator\"></li>\n  <mwc-list-item graphic=\"icon\">\n    <slot>FAQ</slot>\n    <mwc-icon slot=\"graphic\">help_outline</mwc-icon>\n  </mwc-list-item>\n  <mwc-list-item graphic=\"icon\">\n    <slot>Sign out</slot>\n    <mwc-icon slot=\"graphic\">exit_to_app</mwc-icon>\n  </mwc-list-item>\n</mwc-list>\n```\n\n### Styled\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/styled.png\" width=\"402px\">\n\n```html\n<style>\n  #styled {\n    --mdc-theme-primary: red;\n    --mdc-list-vertical-padding: 0px;\n    --mdc-list-side-padding: 30px;\n    border-radius: 10px;\n    overflow: hidden;\n  }\n</style>\n<mwc-list activatable id=\"styled\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n### Styled No-ripple\n\nFor more-control on styling, you may want to disable the ripple. Internally\n`list-item` uses `mwc-ripple`. You can make the ripple invisible using its\ncustom properties detailed in [`mwc-ripple`'s documentation](https://github.com/material-components/material-web/tree/master/packages/list). In this case,\nit may be simple to just set `--mdc-ripple-color` to `transparent`.\n\n<img src=\"https://raw.githubusercontent.com/material-components/material-components-web-components/6347c3e1b0264cc34cad24e4e52a23e2100a4926/packages/list/images/styled_no_ripple.png\" width=\"402px\">\n\n```html\n<style>\n  /* disable ripple */\n  #styledr {\n    --mdc-ripple-color: transparent;\n  }\n\n  #styledr > * {\n    transition: background-color .2s, color .2s;\n  }\n\n  #styledr [selected] {\n    background-color: rgb(33, 33, 33);\n    color: white;\n  }\n\n  #styledr [mwc-list-item]:not([selected]):hover,\n  #styledr [mwc-list-item]:not([selected]):focus {\n    background-color: rgba(33, 33, 33, 0.3);\n  }\n\n  #styledr [mwc-list-item]:not([selected]):active {\n    background-color: rgba(33, 33, 33, 0.4);\n  }\n\n  #styledr [mwc-list-item][selected]:hover,\n  #styledr [mwc-list-item][selected]:focus {\n    background-color: rgba(33, 33, 33, 0.9);\n  }\n\n  #styledr [mwc-list-item][selected]:active {\n    background-color: rgba(33, 33, 33, 0.8);\n  }\n</style>\n\n<mwc-list id=\"styledr\">\n  <mwc-list-item selected>Item 0</mwc-list-item>\n  <mwc-list-item>Item 1</mwc-list-item>\n  <mwc-list-item>Item 2</mwc-list-item>\n  <mwc-list-item>Item 3</mwc-list-item>\n</mwc-list>\n```\n\n## API\n\n### Slots\n\n#### mwc-list\n\n| Name              |\tDescription\n| ----------------- | -------------\n| _default_         |\tContent to display in the lists internal `<ul>` element.\n\n#### mwc-list-item\n\n| Name        | Description\n| ----------- | ---\n| `graphic`   | First tile graphic to display when `graphic` attribute is defined.\n| `meta`      | Last tile meta icon or text to display when `hasMeta` is true.\n| `secondary` | Secondary text displayed below primary text of a two-line list item.\n| _default_   |\tPrimary text to display in the list item. Note, text must be wrapped in an inline node to be styled for `disabled` variant.\n\n\n### Properties/Attributes\n\n#### mwc-list\n\n| Name             | Type           | Default | Description\n| ---------------- | -------------- | ------- |------------\n| `activatable`    | `boolean`      | `false` | Sets `activated` attribute on selected items which provides a focus-persistent highlight.\n| `rootTabbable`   | `boolean`      | `false` | When `true`, sets `tabindex=\"0\"` on the internal list. Otherwise sets `tabindex=\"-1\"`.\n| `multi`          | `boolean`      | `false` | When `true`, enables selection of multiple items. This will result in `index` being of type `Set<number>` and selected returning `ListItemBase[]`.\n| `wrapFocus`      | `boolean`      | `false` | When `true`, pressing `up` on the keyboard when focused on the first item will focus the last item and `down` when focused on the last item will focus the first item.\n| `itemRoles`      | `string\\|null` | `null`  | Determines what `role` attribute to set on all list items.\n| `innerAriaLabel` | `string\\|null` | `null`  | ARIA label of the internal `<ul>` element.\n| `innerRole`      | `string\\|null` | `null`  | Role of the internal `<ul>` element.\n| `noninteractive` | `boolean`      | `false` | When `true`, disables focus and pointer events (thus ripples) on the list. Used for display-only lists.\n| `items`          | `ListItemBase[]` (readonly)* | `[]` | All list items that are available for selection. Eligible items have the `[mwc-list-item]` attribute which `ListItemBase` applies automatically.\n| `selected`       | `SelectedType` (readonly)* | `null` | Currently-selected list item(s). When `multi` is `true`, `selected` is of type `ListItemBase[]` and when `false`, `selected` is of type `ListItemBase`. `selected` is `null` when no item is selected.\n| `index`          | `MWCListIndex` (readonly)**  | `-1` | Index / indices of selected item(s). When `multi` is `true`, `index` is of type `number` and when `false`, `index` is of type `Set<number>`. Unset indicies are `-1` and empty `Set<number>` for single and multi selection respectively.\n\n\\* `SelectedType` is equivaalent to type `ListItemBase|ListItemBase[]|null`.\n`ListItemBase` is the base class of `mwc-list-item` of which both\n`mwc-check-list-item` and `mwc-radio-list-item` also inherit from.\n\n\\** `MWCListIndex` is equivalent to type `number|Set<number>`.\n\n#### mwc-list-item\n\n| Name               | Type                | Default | Description\n| ------------------ | ------------------- | ------- | -----------\n| `value`            | `string`            | `''`    | Value associated with this list item (used by `mwc-select`).\n| `group`            | `string\\|null`      | `null`  | Used to group items together (used by `mwc-menu` for menu selection groups and `mwc-radio-list-element`).\n| `tabindex`         | `number`            | `-1`    | Reflects `tabindex` and sets internal tab indices.\n| `disabled`         | `boolean`           | `false` | Reflects `disabled` and sets internal `disabled` attributes.\n| `twoline`          | `boolean`           | `false` | Activates the two-line variant and enables the `secondary` slot.\n| `activated`        | `boolean`           | `false` | Activates focus-persistent ripple.\n| `graphic`          | `GraphicType`*      | `null`  | Determines which graphic layout to show and enables the `graphic` slot.\n| `multipleGraphics` | `boolean`           | `false` | Allows arbitrary width for multiple slotted graphics.\n| `hasMeta`          | `boolean`           | `false` | Activates the meta layout tile and enables the `meta` slot.\n| `noninteractive`   | `boolean`           | `false` | Disables focus and pointer events for the list item.\n| `selected`         | `boolean`           | `false` | Denotes that the list item is selected.\n| `text`             | `string` (readonly) | `''`    | Trimmed `textContent` of the list item.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n#### mwc-check-list-item\n\nNote: `mwc-check-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-check-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### mwc-radio-list-item\n\nNote: `mwc-radio-list-item` inherits from `ListItemBase` which is the base class\nof `mwc-list-item`, so all properties in `mwc-list-item` will be available on\n`mwc-radio-list-item`.\n\n| Name             | Type           | Default     | Description\n| ---------------- | -------------- | ----------- | -----------\n| `left`           | `boolean`      | `false`     | Displays the checkbox on the left. Overrides `graphic`.\n| `graphic`        | `GraphicType`* | `'control'` | Determines which graphic layout to show and enables the `graphic` slot when value is not `control` or `null`.\n| `group`          | `string\\|null`  | `null`      | Used to group the internal `mwc-radio`s together (also used by `mwc-menu` for selection groups).\n\n\\* `GraphicType` is equivalent to the type\n`'avatar'|'icon'|'medium'|'large'|'control'|null`.\n\n### Methods\n\n| Name     | Description\n| -------- | -------------\n| `select(index: MWCListIndex) => void` | Selects the elements at the given index / indices.\n| `toggle(index: number, force?: boolean) => void` | Toggles the selected index, and forcibly selects or deselects the value of `force` if attribute is provided.\n| `getFocusedItemIndex() => number` | Returns the index of the currently-focused item. `-1` if none are focused.\n| `focusItemAtIndex(index) => void` | Focuses the item at the given index and manages tabindex on all other items.\n| `layout(updateItems = true) => void` | Resets tabindex on all items and will update items model if provided true. It may be required to call layout if selectability of an element is dynamically changed. e.g. `[mwc-list-item]` attribute is removed from a list item or `noninteractive` is dynamically set on a list item.\n\n### Events\n\n#### mwc-list\n\n| Event Name | Target       | Detail             | Description\n| ---------- | ------------ | ------------------ | -----------\n| `action`   | `mwc-list`   | `ActionDetail`*    | Fired when a selection has been made via click or keyboard aciton.\n| `selected` | `mwc-list`   | `SelectedDetail`** | Fired when a selection has been made. `index` is the selected index (will be of type `Set<number>` if multi and `number` if single), and `diff` (of type `IndexDiff`**) represents the diff of added and removed indices from previous selection.\n\n\\* `ActionDetail` is an interface of the following type:\n\n```ts\ninterface ActionDetail {\n  index: number;\n}\n```\n\n\\** `SelectedDetail` is an interface of the following type:\n\n```ts\ninterface SelectedDetail<T extends MWCListIndex = MWCListIndex> {\n  index: T;\n  diff: T extends Set<number> ? IndexDiff: undefined;\n}\n```\n\n\\** `IndexDiff` is an interface of the following type:\n\n```ts\ninterface IndexDiff {\n  added: number[];\n  removed: number[];\n}\n```\n\nIt may be easier to use `SelectedEvent` which is of type\n`SingleSelectedEvent|MultiSelectedEvent`.\n\n`SingleSelectedEvent` is of type `CustomEvent<SelectedDetail<number>>`\n\n`MultiSelectedEvent` is of type `CustomEvent<SelectedDetail<Set<number>>>`\n\nIf you listen for a `selected` event you may be able to use the following\npattern:\n\n```ts\nimport '@material/mwc-list/mwc-list.js';\nimport {isEventMulti} from '@material/mwc-list/mwc-list.js';\n\nconst onSelected = (evt: SelectedEvent) => {\n  if (isEventMulti(evt)) {\n    // Typescript will infer evt as {index: Set<number>, diff: IndexDiff}\n    ...\n  } else {\n    // Typescript will infer evt as {index: number, diff: undefined}\n    ...\n  }\n};\n\nmwcList.addEventListener('selected', onSelected);\n```\n\n#### mwc-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail`* | Fired upon click and when `selected` property is changed. Requests selection from the `mwc-list`.\n\n\\* `RequestSelectedDetail` is an interface of the following type:\n\n```ts\ninterface RequestSelectedDetail {\n  selected: boolean;\n  source: 'interaction'|'property';\n}\n```\n\n#### mwc-check-list-item\n\n| Event Name          | Target          | Detail                  | Description\n| ------------------- | --------------- | ----------------------- | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click. Requests selection from the `mwc-list`.\n\n#### mwc-radio-list-item\n\n| Event Name          | Target          | Detail                   | Description\n| ------------------- | --------------- | ------------------------ | -----------\n| `request-selected`  | `mwc-list-item` | `RequestSelectedDetail` | Fired upon click and on internal `mwc-radio`'s `checked` event. Requests selection from the `mwc-list`.\n\n### CSS Custom Properties\n\n#### mwc-list\n\n| Name                                | Default               | Description\n| ----------------------------------- | --------------------- |------------\n| `--mdc-list-vertical-padding` | `8px`    | Padding before and after the first and last list items.\n| `--mdc-list-side-padding`     | `16px`   | Adjusts the padding of the `[padded]` list dividers (also propagates to `mwc-list-item`).\n| `--mdc-list-inset-margin`     | `72px`   | Adjusts the left inset padding of an `[inset]` list divider. Typically used for dividing list items with icons.\n\n#### mwc-list-item\n\n| Name                                       | Default              | Description\n| ------------------------------------------ | -------------------- |------------\n| `--mdc-list-side-padding`                  | `16px`               | Side padding of the list item.\n| `--mdc-list-item-meta-size`                | `24px`               | Line height of the meta icon or text and width & height of the slotted parent wrapper.\n| `--mdc-list-item-graphic-size`             | `24px`,`40px`,`56px` | Line height of the graphic and width & height of the slotted parent wrapper. `24px` when graphic is `\"icon\"`. `40px` when graphic is `\"avatar\"`. `56px` when graphic is `\"medium\"`, and `\"large\"`.\n| `--mdc-list-item-graphic-margin`           | `16px`,`32px`        | Margin between the text and graphic. `16px` when graphic is `\"avatar\"`, `\"medium\"`, `\"large\"`, and `\"control\"`. `32px` when graphic is `\"icon\"`.\n\n`mwc-list-item` internally uses [`mwc-ripple`](https://github.com/material-components/material-web/tree/master/packages/list)\nand thus exposes all of the custom properties in `mwc-ripple`'s documentation\nwith the exception of `--mdc-ripple-color` being overriden as\n`--mdc-theme-primary` when `mwc-list-item` is `activated`.\n\n##### Global Custom Properties\n\nThis component exposes the following global [theming](https://github.com/material-components/material-components-web-components/blob/master/docs/theming.md)\ncustom properties.\n\n| Name                                       | Description\n| ------------------------------------------ | -----------\n| `--mdc-theme-primary`                      | Color of the activated ripple and primary text color when activated.\n| `--mdc-theme-on-surface`                   | Disabled text color.\n| `--mdc-theme-text-icon-on-background`      | Color of the graphic icon (if graphic is text icon).\n| `--mdc-theme-text-primary-on-background`   | Color of the primary text if not activated.\n| `--mdc-theme-text-secondary-on-background` | Color of the secondary text if not activated.\n| `--mdc-theme-hint-on-background`           | Color of the meta (if is text or text icon).\n| `--mdc-typography-subtitle1-<PROPERTY>`    | Styles the typography of a list item.\n| `--mdc-typography-body2-<PROPERTY>`        | Styles the typography of a list item's secondary text.\n| `--mdc-typography-caption-<PROPERTY>`      | Styles the typography of a list item's icon and meta text.\n\n## Additional references\n\n- [MDC Web lists](https://material.io/develop/web/components/lists/)\n","readmeFilename":"README.md","keywords":["material design","web components","list"],"homepage":"https://github.com/material-components/material-web#readme","repository":{"type":"git","url":"git+https://github.com/material-components/material-web.git","directory":"packages/list"},"bugs":{"url":"https://github.com/material-components/material-web/issues"}}